Adanaxis Rendering Demo

Discuss interdimensional programming, Java applets and so forth.

Postby quickfur » Mon Aug 14, 2006 3:46 pm

southa wrote:
Why? Because if you force the second projection to happen orthogonally to the 4D viewpoint, you get a lot of illusions. For example, if you look down a cubical passage in 4D, the projected image has the 4 side walls as frustums (analogous to the side walls of the cube-within-a-cube projection of the 4-cube). But now you project to 2D parallel to the coordinate axes, and suddenly you can't see 2 of the frustums anymore because their opposite edges coincide. What you really want is to project to 2D using another viewpoint (which resides in 3D), that looks at the retina from an angle, so that you can see the 6 frustum volumes in the 3D retina separately. The cubical wall at the end of the corridor will be much more obviously a cube; if you had projected from an orthogonal viewpoint, it simply becomes a square, and you have absolutely no information about whether it's a square, a cube, or a cuboid in the 4D view.

That's valid if you constrain the orientation of the viewer, but if you allow the viewer to rotate by any angle in all six planes, they can effectively move your viewpoint for the 3D retina to wherever they like. So no matter what viewpoint you pick, the tetronian can reorientate themselves so that the illusions reappear. Put another way, there are viewer rotations that have the same effect as the arrow keys in the 4D Maze Game - you can recreate the illusion view with those too.

The point is that the player should be able to rotate the 3D view freely in order to ascertain what exactly is being seen, without changing his 4D viewpoint. It doesn't make sense that the 4D viewpoint needs to be rotated just so some poor 3D being can understand what the tetronian is seeing.
quickfur
Pentonian
 
Posts: 2935
Joined: Thu Sep 02, 2004 11:20 pm
Location: The Great White North

Postby quickfur » Mon Aug 14, 2006 3:57 pm

bo198214 wrote:Thats what I am saying all the time! Completely agreeing with quickfur, though some comments:

quickfur wrote:Projecting from 4D to 3D is the easy step. I think we all agree that we want perspective projection from 4D to 3D with occlusion (e.g., shouldn't see through walls). This projection is done from the 4D viewpoint.

1. For certain purposes it may also be appropriate to use cavalier perspective (which is funnily no perspective projection) or other projections used in 3d technical drawings, confered to 4D. For example if we want to construct a 4D machine *lol*.
2. 4d Occlusion culling for wireframe is though difficult, I programmed it a week ago and never saw it in any 4d application. (Of course I dont talk about occlusion culling for viewing a single Polytope, where it is quite easy by the normals of the facets.)

Wait, isn't cavalier projection just a kind of oblique projection? This can be done easily, of course. Now, understanding the result would be another matter, though. :-) Although, I did use oblique projections in my mind to visualize some of the tetracube-based uniform polychora (such as the runcinated/cantellated tesseracts, and other such cuties).

4D occlusion culling in general is very difficult, I agree. It basically amounts to arbitrary symbolic 3D culling (symbolic as in, analytical, as opposed to using a z-buffer). But I don't see a way around it without compromising the usefulness of the projection.

What's really needed is to use transparent surfaces instead of lines, so that you can see the shapes of the projected volumes.

Is this anywhere already done? I mean it is *one* idea, though the only (non-wireframe) one that came to my mind.

Recently, much to my joy, I discovered that the "polytopes" hack in xscreensaver actually implements transparent surfaces for viewing the regular 4-polytopes!! It even lets you select what kind of projection you want to use for each step of the projection (4D->3D, or 3D->2D). I don't know if you use Linux, but if you do, it's worth checking it out. Of course, it comes with a caveat, in that it does a naive alpha blending of constant-color polygons, so the result isn't as clear as it could be. But at least it's a great start.

I also remember some guy named Tuvel, who used to post here, who had a website with animations of various polytopes using glass-like material for rendering polygons. Unfortunately, the website no longer exists, and I've been unable to find those animations anywhere else (except for the precious few I downloaded locally).
quickfur
Pentonian
 
Posts: 2935
Joined: Thu Sep 02, 2004 11:20 pm
Location: The Great White North

Postby southa » Tue Aug 15, 2006 9:58 am

The point is that the player should be able to rotate the 3D view freely in order to ascertain what exactly is being seen, without changing his 4D viewpoint. It doesn't make sense that the 4D viewpoint needs to be rotated just so some poor 3D being can understand what the tetronian is seeing.

True, but the 4D viewer position doesn't have to change, only the orientation of the 4D viewer. So a change in the position of your 3D viewer is largely equivalent (even mathematically) to a change in orientation of the 4D viewer.
4D occlusion culling in general is very difficult, I agree. It basically amounts to arbitrary symbolic 3D culling (symbolic as in, analytical, as opposed to using a z-buffer). But I don't see a way around it without compromising the usefulness of the projection.

A 3D depth buffer should do it (w buffer?), but that makes rendering expensive. Its cost is probably similar to using 3D textures for the hyperfaces, but it still looks easier than doing it analytically.
southa
Dionian
 
Posts: 20
Joined: Sat Jun 11, 2005 10:28 pm
Location: Cambridge, UK

Postby pat » Fri Aug 18, 2006 11:16 pm

If things are rendered back-to-front, why do we need occlusion culling? Occluded things will be culled automatically, no?
pat
Tetronian
 
Posts: 563
Joined: Tue Dec 02, 2003 5:30 pm
Location: Minneapolis, MN

Postby bo198214 » Sat Aug 19, 2006 12:50 am

Please discussion about rendering into the thread How to project 4d scenes in programs.
bo198214
Tetronian
 
Posts: 692
Joined: Tue Dec 06, 2005 11:03 pm
Location: Berlin - Germany

Previous

Return to Programming

Who is online

Users browsing this forum: No registered users and 4 guests