Комментарии:
Just wow. I can only congratulate on your programming skills. If you are bored, you could ivestigate, how holography works and make an example of it. (Lenses, microlenses)
ОтветитьEven the skyboxes have chemtrails now.
ОтветитьOne mistake I noticed is that reflective spheres have dark edges. This is caused because dot product shading is still being done for non-diffuse materials. The solution is to interpolate between the shaded brightness and a full brightness as the roughness goes down.
Ответитьcan you release this engine, make it opensource and start a funding compain
ОтветитьHey! You are SO CLOSE with getting it to work! You do not have to reset the buffer when moving the camera! Instead, google about temporal reprojection! You take per vertex motion vectors (the kind used for motion blur in modern games) and offset the pixels in the buffer with it. That way, the surfaces that are new pixels get rendered, and the old surfaces accumulate samples.
This has problems of its own. If you separate the bounce lighting and just use a basic N dot L, you can use a bilateral blur based on depth pass, along with the temporal effect to help sell it a bit.
This doesn't work for objects with parallax like specular reflections, but for diffuse it works wonders!
Oh and of course, multiply an albedo texture like usual afterwards.
You can combine a lot of different effects. I've seen games save ray traced lighting to UVs for worse case or screen space effects, and then ray trace for the best case. The way UE5 does it is ray trace only on the lowest LOD versions of models.
do you have a depth of field video?
ОтветитьPlease make video how calculate normal vectors for 3D polygon..
ОтветитьI'm learning 2d art, watching your video makes me realize the way an artist decide the hue, satturation, value of a spot on the painting is exactly like how ray tracing work. The video is very fun and comprehensive to watch!
Ответитьi'd like to know how the engine program works and if there will be any implementations for blender! i'd love to try this program out!
ОтветитьYou can probably just have it to where each time the camera moves average each pixel in the buffer with the current pixel, then add it back to the buffer, effectively making the program still use the old rendered bits, but take them with a grain of salt. A better explanation is to say that you've rendered pixel A, B, and C, then the camera moves so now you have pixel D, but all the previous ones aren't accurate. So, you are going to alter the previous pixels in the buffer entirely, A = (A+D)/2 B = (B+D)/2 C = (C+D)/2, then the next pixel you render becomes (A+B+C+D)/4. This of course will still have a little blur, but less so.
ОтветитьSo, when are you going to make one in byte code?
ОтветитьWow it looks like a render in blender
Ответитьr-t was in minecraft a while ago
ОтветитьThe Gran Turismo 4 for PlayStation 2 has ray tracing bro
ОтветитьIs this the render implemented at CREO? :o
ОтветитьIt do looks exactly like CREO render.
ОтветитьThe first version looks like Bryce 3D
Ответить"Light and color are actually real things," WHAT?! ARE YOU OUTTA YOUR GODDAMN MIND?!!!1!
ОтветитьNice, but ray tracing is overrated.
ОтветитьI went outside my room once. The graphics were amazing but the gameplay was boring, and as for the NPCs...
Ответить"As it was the first C++ dependency that did not fill my console with compilations errors the first time I tried it" WRITE THAT DOWN WRITE THAT DOWN!!!
ОтветитьBro you don't need to make a ray tracing engine just enable rtx in settings. Jk
ОтветитьNow make it in scratch
ОтветитьMake it a downloadable program, so I can test my devices XD
ОтветитьGreat Video! Please make more videoS!
ОтветитьHow well can it handle caustics? (Performance)
ОтветитьIf you want even more realistic material behaviour, try looking into GGX scattering, it's a microfacet distribution, meaning it models the materials as a ton of microscopic mirrors oriented depending on smoothness etc. Great video btw!
Ответитьyou used java and didnt even use opengl? u used the standard extremly bad 3d lib? i want to not be here
ОтветитьOpenGL is already getting depricated. Use vulkan next time!
Ответитьyou dont need to wast time like this. just learn unreal engine 5. it supports ray tracing and there are many more features.
ОтветитьHow did you create the boxes from the spheres? I am tired of using the slow voxel code that involves WAY too many plane intersections. Please get back as my raytracers looks awful with the current voxel system.
Ответитьok now make it game engine
ОтветитьPlease make a part 2!
Ответитьcool cool now remake all of blender /j
ОтветитьThat's how render engine "Cycles" works...
Ответитьhow do i open this? i want to test my pc with it but there doesn't appear to be an application file anywhere..
ОтветитьHow long did this take you
ОтветитьYou could still use Java with OpenGL, just to spite the haters.
ОтветитьAMAZING !!!
ОтветитьIf you continue this raytracer, you could add pbr materials and fresnel (for the moment it looks like you blended between metallic and diffuse materials)
ОтветитьNice, very nice
Ответитьamazing
Ответитьcan we compile this in linux tho?
ОтветитьYour content is great man. Keep up the good work
ОтветитьI recommend adding something called "fresnel" to the engine since the ground plane is looking a bit flat near the horizon. The steeper a ray comes in the more reflective the object gets. This effect gets weaker the rougher the object is. It is also a mandatory feature if you want photorealism since our brains know something is off.
I also recommend adding caustics because it also affects realism. When computing indirect lighting, you should make rays bounce off reflective surfaces and if it reaches a light or a bright surface, you light the original surface accordingly.
I have a question. When I rotate an image on a 2-dimension plane, and I get the point to show at its new location as being 2.43, 3.76; can the color to copy be calculated as ((0.57 + 0.24) * color at 2,3 + (0.57 + 0.76) * color at 2,4 + (0.43 + 0.24) * color at 3,3 + (0.43 + 0.76) * color at 3,4)/4? With a coordinate being 2.43, I figured that since I was 43 percent of the way from there to 2 and 57 percent of the way from there to 3 that I need to put a 43 percent weight towards 3 and a 57 percent weight toward 2. Is that a good idea?
Ответить"You made a realistic 3D renderer? Good, now make an entire new 3D software with mesh editing and sculpting."
ОтветитьOpenGL is a specification. Not library.
Ответить