4 ms·
Show HN: VSC – An open source 3D Rendering Engine in C++
Been making this rasterizer engine in C++ for the past few months, now also adding ray-tracing functionality to the system.
Simply load a model or generate a mesh, add some lights, and render.
- rnewme 2y agoIt's always exciting feeling to get some feedback from community, so here you go! The project looks fun, but could use a bit more docs. I was able to compile for esp but didnt test yet. I only have a cheap aliexpress esp with builtin lcd, might try to hack it
- NormalExisting 2y agoYeah I might make some docs for it soon.
- deleted 2y ago[deleted]
- ltbarcly3 2y ago[flagged]
- NormalExisting 2y agoYes (software renderer)
- deleted 2y ago[deleted]
- tikotus 2y agoWell done! You mention the point is to make it portable. Does the project have any other goals, like, what kind of games could be made with it, how fast does it need to be? Do you have any performance metrics to share?
- NormalExisting 2y agoPerformance boosts and metrics I do intend to look into, in particular acceleration structures (probably a BVH?) for the ray tracer and more optimized methods (e.g. a better scanline triangle fill and some clipping algos) for the rasterizer. As for portability, not sure yet, this is meant to more or less be a rendering/animation engine that is lightweight, probably portable to embedded processors like ESP32s?
- laurentlb 2y agoInteresting! Some feedback: - Try to make it clear in the description that it's software rendering (it's easy to miss this information). - The readme should include a clear list of features. - Be aware that the AGPL license might be a problem for many people.
- deleted 2y ago[deleted]
- NormalExisting 2y agoWorking on some rudimentary docs right now, the README might also be updated directly.
- kaladin-jasnah 2y agoNot OP, but I think AGPL is generally an excellent choice for my hard work that I want to showcase. If I care about free software but also want to "protect" my work to prevent people from forking it without releasing their contributions because of strong copyleft. Many of my open source personal projects are licensed under AGPL.
- giancarlostoro 2y agoAGPL makes no sense to me for projects that aren't focused on server use. This project is a good example of something that could just have a GPL license attached to it. I personally don't use AGPL software if I intend on trying to expand on something as a business idea. I'd be fully willing to give back bugfixes and donate back, but I'm not about to hand off anything I pour months and years into to my competitors for free.
- hgs3 2y ago> I'm not about to hand off anything I pour months and years into to my competitors for free. Library authors can pour "months and years" into their projects, and yet you expect them (but not yourself) to give away their code under more permissive terms, while you keep yours closed? The (A)GPL is a great choice because it forces people like you to either (1) open up your code or (2) pay for a closed-source license.
- sim7c00 2y agothis is really cool thanks! totally i need of a good software renderer!. Not in c++ but this should be portable techniques i guess. my first attempts tryjng t draw 3d stuff to a framebuffer, needless to say, were so slow. didnt think it was possible to make something run that slow on a modern pc... thanks! super cool project to learn stuff from =)
- lukan 2y ago"totally i need of a good software renderer!" If I may ask, why? Don't you like performance?
- sim7c00 2y agoi am writing an operating system and want to make a software (batch) renderer inside that to draw things. i am not confident nor currently have the objective to port something like Vulkan and write a device driver. my video card will give me a framebuffer via legacy interfaces, so i think software renderer is my option to do 3d
- DrFalkyn 2y agoIf portability is a goal you might want to use CMake and Docker.
- johnnyjeans 2y agomake is more portable than cmake. docker has zero value add from what I saw in the repo.
- DrFalkyn 2y agoHow about fixing the version of the compiler and the dependencies so you don’t get build errors ? Yes it only works for Linux. But these days it’s pretty easy to get a Foam with WSL on Windows and Docker for desktop Sticking with a Makefile is going get increasingly unwieldy for a large project
- Shorel 2y agoDefinitely not true in my experience. Want to describe your issues with CMake? Maybe the community can help you.
- deleted 2y ago[deleted]
- johnnyjeans 2y agoIt's inherently less portable as it relies on C++ and the cmake language is rather complicated, and thus making it harder to implement. Make and more preferable mk, are reliant on C, and are simpler languages making them easy to implement. It's simple portability calculus.
- menaerus 2y agoPortability-wise this was perhaps the case ~20 years ago but today I am not aware of any platform that doesn't have a decent C++ compiler so I don't think what you're saying is generally true. I also don't agree on the second point - I don't see what makes the CMake "harder to implement" than make/mk. It's already implemented and all you need is a compiler, which we have plenty of.
- chrisweekly 2y ago[flagged]
- deleted 2y ago[deleted]
- pjc50 2y agoIs this a recreation of the venerable POV-RAY https://www.povray.org/ https://www.povray.org/ (30 years old now, wow)?
- dimatura 2y agopovray is a raytracer, this is a rasterizer (like what openGL does, say). Different rendering techniques.
- aap_ 2y agoFunny coincidence. I've written a small 3D rendering engine for the ESP32 as well last week. It has standard 3d math, clipping, and rasterization of points, lines and triangles. all in ~1500 lines of code. The repo is not polished yet but you can find it here: https://github.com/aap/psiop https://github.com/aap/psiop
- NormalExisting 2y agoDocs have largely been uploaded.
- Jotalea 2y agoVSC? IS THAT A MOTHERFUCKING GEOMETRY DASH REFERENCE?!? :O (sorry, I had to)
- NormalExisting 2y agoRead the readme and find out :3
- tttym 2y agoGreat idea pulled off! Feedback si always the best way to see if you are headed for the right direction.