Sign in to follow this  
Squirm

non-euclidean physics

Recommended Posts

It's time for a "silly idea" post [totally] It would be nice, wouldn't it, if we could fire rockets through the portals in quake3? Better yet, if you could make it so that the world on the other side was upside down, and make a kind of Escher's staircase? Rather than try to rewrite quake3, however, I thought I'd just try to make a simple non-euclidean physics thing in 2D. To handle portals would be easy - we can just glue together the occasional grid cells. That isn't enough for me though. What I'd like is a completely arbitrary surface. Rendering isn't a problem if the surface is embedable in 3D, and there are some tricks to play for slightly less friendly behaviour aswell. Arbitrary surfaces means I'm looking at a triangular spatial subdivision scheme rather than an aabb, which should make for some interesting challenges, but when the world is nice and flat basically everything should be fine. When the world twists up gently, everything is still fine. It's when it heads towards a black hole kind of situation that my brains begin to leak out of my ears. I think I can get around a body geometry which is centered in one triangle but completely overlaps all 3 vertices of a small adjoining triangle. I also think I can get away with ignoring rigid objects which manage to wrap completely around the world and intersect themselves. I'm not sure how to handle an object which, whilst intersecting itself, collides with another object, twice, in the same place, but I could just kill it for being ridiculous. Can anyone think of anything else that is likely to jump out and bite me at the last minute? I have the unusual advantage of being able to make a closed universe, which might even simplify some things.

Share this post


Link to post
Share on other sites
I also have that idea. For example, my landscape is toroid in sense if you walk to other side you're warped back.
It's simple to make hypertoroid.
Or surface of hypercube.(i. e. like you live on 3D surface of hypercube) Ot live on surface of arbitrary 4D polyhedra...

And as about portals&teleports: it's interesting, but it's still "flat" space. Really interesting non-flat space should have curved light pathes, etc . [grin]

Share this post


Link to post
Share on other sites
Quote:
Original post by Squirm
Ah well, I've chosen 2D for a reason :)

If you want to render a 3D (4D embedable) space then I think you're gonna have to raytrace, without the cheats . . .

it might be flat anywhere(that is, can be rendered by rasterizer) and still be really funny - take for example 3d surface of hypercube. It's simply 8 cubes that is connected via portals in weird way...

Share this post


Link to post
Share on other sites
Another special case :)

How would you render the surface of a hyper-sphere with a rasterizer? Or an arbitrary iso-surface? There's no obvious portals . . . by the time you create enough portals to make it renderable with a rasterizer, the act of stepping through the portals equates to a rather innefficient form of raytracing :o)

Now, if the surface is 2D it can be rastered in 3 without much hassle, provided that certain conditions are met :)

Share this post


Link to post
Share on other sites
There we see difference between topologically-non-flat things, and non-Euclidean spaces, and hypersurfaces. Topologically, hupercube and hypersphere it's the same things. Simplest topological equivalent to surface of hypersphere it's 2 3D cubes with their surfaces working as portals between 'em .

By organizing that portals in different way it's also possible to make Moebius volume. And that volume can not exist in 4D without self-intersections just like Klein bottle can't exist in 3D without self-intersections. Also, Euclidean Moebius volume can not be 4D hypersurface. 4D hyper-iso-surfaces can not represent everything too, it's not a ultimate-and-general thing.

Note that in 3D, generally, raytracing is the only option. And rasterizing works only for case index of refraction is equal anywhere. If there's field with variable ior, raytracing is the only option too :-).

Regarding curved hypersurface of hypersphere: it's also special case and i'm sure it's possible to rasterize things. Just needed to use really weird "perspective transforms" Maybe i'll make renderer. It's possible to do that using unit-length quaternions...then light travels by shortest arks... damn, it's easy enough. I'll certanly try that when will have coding time for it.

Another thing,surface of Moebius strip is Euclidean if it's made from paper. But Klein bottle in 3D is always deformed that you have non-Euclidean surface...

in summary: 3D things with different topology can be rendered using portals. And things with different geometry can be rendered using raytracing if you have some function
ray f(ray a, float t)
that returns ray as it is at distance t.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this