Audio (342) Datatype (51) Demo (203) Development (593) Document (22) Driver (99) Emulation (146) Game (992) Graphics (494) Library (113) Network (228) Office (65) Utility (912) Video (69)
Total files: 4329
Full index file Recent index file
Amigans.net OpenAmiga Aminet IntuitionBase
|
Cow3D | Description: | Draw a textured 3D cow with Warp3D | Download: | cow3d.lha (TIPS: Use the right click menu if your browser takes you back here all the time) | Size: | 722kb | Version: | 6.0 | Date: | 24 Dec 2019 | Author: | thellier@free.fr (Alain Thellier) | Submitter: | uploader | Homepage: | http://thellier.free.fr/Wazp3D.htm | Requirements: | AmigaOS4 | Category: | utility/benchmark | Replaces: | utility/benchmark/cow3d.lha | License: | GPL | Distribute: | yes | Min OS Version: | 4.1 | FileID: | 11076 | | | Comments: | 0 | Snapshots: | 0 | Videos: | 0 | Downloads: | 216 (Current version) | | 535 (Accumulated) | Votes: | 0 (0/0) (30 days/7 days) | |
DESCRIPTION
The ultimate Warp3D & Nova testing tool (now for Aros & AmigaOS4 ppc)
It draw a textured cow object then draw upside a quad with a cosmos texture
Compiled with GCC. Use Warp3D library (needed) or Warp3DNova.library (optionnal)
Also demonstrate how to code efficiently Warp3D or Nova for OS3 or OS4
If Warp3D & Nova was too difficult for you this example will change your mind
French: Le prog ultime pour tester Warp3D ou Nova en traçant une vache 3D
texturee
puis trace par dessus un rectangle a texture de cosmos
Compile avec GCC. Bibliotheque Warp3D necessaire
Montre comment programmer efficacement Warp3D & Nova pour OS3 ou OS4
Si Warp3D & Nova etait trop complique pour toi Tu changera d'avis avec cet
exemple
v3.0 Sept 2011: Draw FPS correctly on Aros too. Now works with Wazp3D using
"hard overlay"
v4.0 March 2012: Try to use W3D_InterleavedArray() on OS4
v5.0 Sept 2012: Use W3D_DrawElement() on OS4 ==> faster
v6.0 Oct 2016:
Let the cow turn more before computing FPS
Now can also use Nova as renderer and test Nova (type "Cow3D6 n")
Please note that Cow3D is a very simple program that draw simply a cow
without lighting/clipping/perspective so in the better conditions for the simple
Warp3D.
Therefore the speed difference Nova/Warp3D is not so important in this Cow3D
special case.
SAM460: Nova 457 FPS Warp3D 138 FPS so around X3.3
LICENSE
GNU General Public License (GNU GPL)
Author: Alain THELLIER - Paris - FRANCE - 2016
INSTALLATION
Install Warp3D.library or Wazp3D.library
Install Warp3DNova (optionnal)
Copy Cow3D-Amiga and the textures Cow_256X256X32.RAW & Cosmos_256X256X32.RAW
where you want
USAGE
This program is used to test Nova/Warp3D speed, states, functionnalities &
zbuffer
Can also serve to test Nova when lauched with ""Cow3D6 n" or via given icon
Better speed results are obtained with keys 'o' 'e' 'b' and srcfunc=1 dstfunc=0
(Warp3D only dont concern Nova)
It print all the possible informations for your Nova/Warp3D driver(s)
It draw a textured cow object then draw upside a quad with a cosmos texture
So you can check if a given 3d-driver can really do a feature
OPTIONS KEYS
'f' display frame per seconds and infos on screen
ANIMATION & SPEED:
-----------------------------------------------------
'o' use an optimized rotation function (faster) (default) (Warp3D only dont
concern Nova)
'r' rotate object or not
'b' Allocate a big points-buffer. Compute & store the objects for each frame.
Then use the buffered objects
No more computation = faster . Only the 3d-hardware is used.
WARNING: this options use lots of memory (around 5 MB) (Warp3D only dont
concern Nova)
ZBUFFER:
-----------------------------------------------------
'z' use zbuffer (default yes)
'u' update zbuffer (default yes) (need to use zbuffer)
'1' to '8' change zbuffer test (default 2 = Z_LESS)
'Z' zbuffer tests
draw some test-rectangles & zspans
Zbuffer is cleared with z=0.90 so depending on zmode/zupdate the 7 quads,dotted
line or line should appear
1) write a zspan in zbuffer at z=0.9 (with mask 1 pixel,show 1 pixel) but on
the the test-rectangles use same z values as the rectangles
2) write a zspan in zbuffer at z=0.5 in the midle of the test-rectangles
3) write a zspan in zbuffer from z=0.01 to 0.99
4) draw 7 quads as various depth with various colors (z values =
0.10,0.20,0.30,0.40,0.90,0.94,0.98}
5) draw 7 quads at the same depth = sticked to the face = appears if use a z
equal zmode
WARNING: 1 to 3 dont works on most drivers. Nova unimplemented
'g' grey = read the zbuffer as grey values
WARNING: this options dont works on most drivers
if fail draw as red. Nova unimplemented
DRAW METHOD:
-----------------------------------------------------
't' triangle - draw with W3D_DrawTriangle() = slower . For Nova same as 'e'
'e' elements - draw with W3D_DrawElements() = faster (default)
'p' points - draw as points with W3D_DrawPoint() = slow
WARNING: this options dont works some drivers
'l' lines - draw as lines with W3D_DrawLineLoop() = slow
WARNING: this options dont works some drivers & Nova
'0' zero - draw as big points/lines (use it with 'l' or 'p') = very slow
WARNING: this options dont works on some drivers & Nova
OTHERS:
-----------------------------------------------------
'c' use colors not texture (default no). Nova unimplemented
'h' hide back faces (=culling) (default yes)
WARNING: this options dont works with some drivers
DRAW TESTS:
-----------------------------------------------------
'P' point test : draw a small/big point & draw a small/big line (use it also
with 'c')
WARNING: this options dont works on some drivers. Nova unimplemented
'L' line test : same as 'P'. Nova unimplemented
PATCHES:
-----------------------------------------------------
'w' warp3d is patched (default no)
Reimplement the functions for drawing lines/points (but dont change
W3D_Drawelements() nor W3D_Drawarray())
Implement Read/WriteZspan/Zpixel() but this dont works on most drivers
WARNING: this options dont works on most drivers. Dont concern Nova
BLENDING & TEXENV:
-----------------------------------------------------
's' change srcfunc
'd' change dstfunc
'S' or 'D' change both srcfunc & dstfunc (so typing 'D' 255 times show all
possible effects)
then do W3D_SetBlendMode(context,srcfunc,dstfunc);
default is srcfunc=1 dstfunc=1
For srcfunc=1 dstfunc=0 dont display the cosmos quad so the cow is still visible
Just remember:
src is cosmos-quad
dst is cow-object & background
'm' change texenvmode
then call W3D_SetTexEnv() with this texenvmode for the 2 textures
envcolor for tex1 is green
envcolor for tex2 is blue
Nova implementation via shaders is not 100% perfect
|