Browse Search Popular Register Upload Rules User list Login:
Search:
Advanced Raytracer

Image:
screenshot of the scene

Author: AverageCoder

Group: Default

Filesize: 300.73 kB

Date added: 2024-10-16

Rating: 6.5

Downloads: 6196

Views: 867

Comments: 18

Ratings: 4

Times favored: 0

Made with: Algodoo v2.2.0b

Tags:

Scene tag

The name is "Advanced Raytracer" for 2 large reasons:
Normals and Reflections.

Normals - A property of the onLaserHit event that can define the face the laser bounced off of.
Reflections - A really cool biproduct of using Algodoo for raytracing 3D.

Besides from those two features, this isnt too different from every other 3D raytraced scene.
The scene performs very well on my computer which has an intel i5-12400. I think a phone could handle this at acceptable fps.
There is also a little fps counter which I think is pretty cool. I think I will make a scene that tests your device for power based on this little fps counter.
Last edited at 2024/10/19 08:29:12 by AverageCoder
Please log in to rate this scene
edit
Similar scenes
Title: raytraced 3D (update)
Rating: 5
Filesize: 44.31 kB
Downloads: 1348
Comments: 1
Ratings: 1
Date added: 2024/06/27 19:55:55
Made with: Algodoo v2.2.0b
Rating: rated 5
download
Title: Advanced Marble Race Tools Pack v.3.0 - The Big One
Rating: 5
Filesize: 437.99 kB
Downloads: 1712
Comments: 0
Ratings: 1
Date added: 2025/09/02 01:38:14
Made with: Algodoo v2.2.3
Rating: rated 5
download
Title: Super advanced teleportation machine
Rating: 5
Filesize: 86.73 kB
Downloads: 377
Comments: 2
Ratings: 1
Date added: 2016/02/10 20:35:30
Made with: Algodoo v2.1.0
Rating: rated 5
download
Title: Simple Vs Advanced Firearm Scheme
Rating: 5
Filesize: 14.22 kB
Downloads: 334
Comments: 0
Ratings: 1
Date added: 2017/06/18 16:09:31
Made with: Algodoo v2.1.0
Rating: rated 5
download
Title: Advanced EGG
Rating: 5
Filesize: 43.76 kB
Downloads: 555
Comments: 0
Ratings: 1
Date added: 2012/05/23 01:30:13
Made with: Algodoo v2.0.1 Edu
Rating: rated 5
download
Title: advanced elimnatoin
Rating: 5
Filesize: 23.07 kB
Downloads: 120
Comments: 0
Ratings: 1
Date added: 2025/10/16 21:29:30
Made with: Algodoo v2.2.3
Rating: rated 5
download
Nice work.:tup:
Wow! This is beyond awesome! :tup: _o_ :tup:
raytracer? if this was at the level of povray i would be suprised, but it's still nice
If this was at the level of Povray I would splash cold water in my face because I would know that I was dreaming! :lol:

AverageCoder did an excellent job given the limited capabilities of Algodoo that he had to work with.
I know its not an actual raytracer like RTX but I can probably still call it raytracing. I have bee mentally planning a REAL raytracer with light and stuff but theres a big obstacle I do not know how to combat. That big problem is that lasers do not keep track of every entity it bounces off of in a onLaserHit event. If I had some way to get a table of entities the laser bounced off of, I would contribute my algodoo playtime to it.

Im also mentally planning for visual block coding for Thyme but I don't really know what the community would want. I have two ideas in mind: A more familiar design and interface of something like Scratch, terms that are kind of related to some kind of python (The other coding language I know) and then theres a kind of new interpretation of thyme for block coding. Right now Im kind of leaning towards the first idea.

Dear (viewers who use or have used Scratch or something like it), (non coders who want to code), and (intermediate thyme coders), What idea would you like more?
I have some very, very bad memories from Scratch... :(
I would personally go for the reimplementation of Thyme instead -- but that's ultimately up to you! :lol:

Also, as for your keeping track of entities problem -- onLaserHit is run for each object the laser hits in order of when the object was hit!

Simply making a postStep script to create a blank table and then adding objects to it on every onLaserHit can be used to keep track of hit objects.

I hope this helps! :lol:

EDIT: I have made a simple script (well, 2 of them) that will save the entities the laser has hit into a table.

Here's the code for onLaserHit:

(e)=>{_hitObjects = _hitObjects ++ [e.geom.geomID]

And the code for postStep!

(e)=>{
"place whatever you want in postStep here:D";
_hitObjects = []
}

A little fun fact is that postStep appears to run before onLaserHit -- so if you pause Algodoo, the laser will still contain the list of objects!

This all assumes a table variable named _hitObjects within the object! :)
Last edited at 2024/10/19 08:05:12 by Little
Thank you very much! Next update will use this to make transparent objects show the objects behind them! A real raytracer will also be planned.
No problem!

Discovering the little mirror thing was really fun! For once I could look in a mirror without seeing something horrible. :lol:
Last edited at 2024/10/19 10:20:29 by Little
Nice additions. I don't see any instructions on how to move the raytrace camera. I don't see a method to rotate the raytrace camera.
s_noonan -- Translate camera with A,D,W,S keys, and rotate camera with left and right arrow keys.
ok uhhh so the update im working on isnt very performant so im not publishing it for now
Xray--Thanks. Got it.
idea: diffrent colision layers show difrent hights
Looks really cool, ahd honestly the rope is a very nice addition lol. I'm a bit conflicted about the reflections though, they seem odd and the "character" being the entire height of the viewport is weird. It seems that the reflected objects are taller when the camera is farther away from the mirrors, which seems odd. Also I think you should somehow add a slight effect so you know you're looking at a mirror (maybe render the mirror very slightly, and/or make the reflected objects lighter or something).
make a maze out of this
holy programming
Awesome.. It is raytracing. It is tracing rays!
This is very impressive
though the reflections'ses perspective is.. backwards??