June 19, 2025
Spent some more time on it and there's definitely a bug somewhere but it looks more correct than it used to!
importance sampling for cosine theta term; multi-sample and temporal anti-aliasing; specular, diffuse, and semi-diffuse reflections; area lights; arbitrary camera positions.
Well, it's certainly been a while! My laptop charger broke so i couldn't use my laptop for a few days; But luckily i got a new one and got to work on this for a little bit
Anyway, lambertian diffuse
Got a bunch of work done today! Started adding a quick thingy that writes the preprocessed files to an output file so I can see which line the compiler errors are referring to because without that debugging is hell :3 no real images to show this time so here's an otter
Basic editing is back for a 3rd time!
Yes, I am aware that I do a lot of restarting.
However, I realized that I was way over-engineering everything so I started fresh and this time i kept it simple, and overall I'm pretty happy with my code!
Currently I'm just making the single line input class that will be used for the embedded console/command interface, which will be used for things like copy/paste, find & replace, saving and opening files, and various other cool things!!
Also I once again don't have any cool new things to show off (all the changes were internal), so here's another cute otter pic!
Yet another reset qwq
I realized the way I had structured the code wasn't going to work, so I've restarted again. This time there is just one class for all the input boxes, which extends another class for text boxes in general. Instead of each input having a cursor attached to it, there will be one global cursor for every element to share. I'm also planning to implement a system for arbitrarily placed and sized inputs and text boxes so that later if I need a sidebar it won't be absolute hell to make :3
Anyway here's a cute otter because I'm exhausted and don't feel like going out and screenshotting my code for the 3rd time today
Got the IDE back (almost) to where it was, but this time with cleaner code and comments(!) so not only will it be open source, people can actually read the code too and know what it's doing!
There's no real reason for this other than transparency, but who knows, maybe later I'll support plugins and other people can contribute
I am planning to add Hackatime support at some point so I can use the IDE I made to make more SoM projects :3
Anyway, for those who didn't know, my IDE is officially named Hello IDE, because uhhh i was testing setting the title of the console tab and i set it to Hello IDE! as a reference to Hello World and apparently no one else has used that name before so it's mine now .w.
Anyway here's what the new and improved code for drawing everything looks like (new equivalent of the absolute bullshit code i posted in devlog #4):
Basic typing is back, but this time in a much more elegant way! Now I have classes for both single-line inputs, which will be used for an embedded console feature, and multi-line inputs, which will be used to construct the actual main editor pane. Next features will be newlines and backspaces, so stay tuned until then .w.
First devlog post!!
This project is my second attempt at making a working implementation of the Monte Carlo Pathtracing technique in OpenGL. My first iteration suffered from some serious overcomplication because for whatever reason I decided I also need to write a wrapper for OpenGL before I could use it??? To this day I have no idea why I did that, and I never intend to use the wrapper ever again anyway. Anyways, the point is, this time I intend to make my code much cleaner and more concise, as well as adding new features like more types of materials and possible switching to compute shaders and adding BVH for acceleration. Currently, however, my first task is to, you know, actually make it work. At the moment I'm fighting an uphill battle to figure out why my reflection functions are all wrong, as shown in the attachment.
My second attempt at designing a pathtracer, this time with cleaner code and hopefully more features!
This was widely regarded as a great move by everyone.