amiga-e/amigae33a/E_v3.3a/Src/Src/Gfx/TextureMapping
Alona EM 62a0f807f3 Extract more 2022-05-29 21:07:45 +01:00
..
README Extract more 2022-05-29 21:07:45 +01:00
c2p_cpu3blit1.m Extract more 2022-05-29 21:07:45 +01:00
car64x64x8.iff.cmchunky Extract more 2022-05-29 21:07:45 +01:00
geom.e Extract more 2022-05-29 21:07:45 +01:00
geom.m Extract more 2022-05-29 21:07:45 +01:00
screenmodereq_db.e Extract more 2022-05-29 21:07:45 +01:00
screenmodereq_db.m Extract more 2022-05-29 21:07:45 +01:00
texturemapper.e Extract more 2022-05-29 21:07:45 +01:00
texturemapper.m Extract more 2022-05-29 21:07:45 +01:00
tmaptest.e Extract more 2022-05-29 21:07:45 +01:00

README

texturemapping in E (and assembly :)
------------------------------------

This source code here is provided solely for educational
purposes, it is not solid enough code to base your project
on. I have a faster and more advanced version of this
engine available, but it is rather bulky and keeps
crashing. the version here is an older test version
which hopefully is more stable but is not guaranteed
to work on your machine either.

Compile the example with "ec tmaptest"
Run the example on your favourite low res screenmode
(the program will present you with a requester).
The test program uses a builtin c2p routine optimized
for 030 and above AGA machines, and is unlikely to run
on graphic boards or other non standard screenmodes.

assuming you get the program to run, you can use these keys
to influence the camera:

n,m,d,c		turn left,right,up,down resp.
v,b		bank/tilt left,right resp.
s,x,a,z,w,e	move down,up,forward,backward,right,left resp.
r,t		lens zoom or wide angle
q		quit

About the engine:
The texturemapper is fully free-form, but not perspective
correct (use more polygons!), i.e. unlike Doom, more like
Descent. As you can see from the test it allows all six
degrees of freedom for the camera, and there are no restrictions
on the polygons either.

The intersting bits to look at in the source code would
be in texturemapper.e. The 5 instructions between "inner:"
and "DBRA" is where the texturemapper spends 90% of its
time.

The projection routine in geom.e implements a proper
fisheye projection (most engines use a flat approximation).

Credits:
Mikael Kalms for his excellent CPU3BLIT1 c2p I used.
Jyrki O Saarinen for the tips he gave me on further
  optimizing the inner texturemapping loop.