OS4 DepotLogo by mason 
(anonymous IP:,1561) 

   Bug tracker
   Locale browser


   o Audio (331)
   o Datatype (50)
   o Demo (188)
   o Development (556)
   o Document (21)
   o Driver (90)
   o Emulation (143)
   o Game (905)
   o Graphics (477)
   o Library (104)
   o Network (214)
   o Office (60)
   o Utility (839)
   o Video (64)

Total files: 4042

Full index file
Recent index file



Support the site

 Readme for:  Utility » Benchmark » cow3d.lha


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: 88  (Current version)
407  (Accumulated)
Votes: 0 (0/0)  (30 days/7 days)

Show comments Show snapshots Show videos Show content Show crashlogs Replace file 
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
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

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
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

GNU General Public License (GNU GPL) 
Author: Alain THELLIER - Paris - FRANCE - 2016

Install Warp3D.library or Wazp3D.library
Install Warp3DNova (optionnal)
Copy Cow3D-Amiga and the textures Cow_256X256X32.RAW & Cosmos_256X256X32.RAW
where you want

This program is used to test Nova/Warp3D speed, states, functionnalities &
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


'f' display frame per seconds and infos on screen

'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)

'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 =
	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

'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

'c' use colors not texture (default no). Nova unimplemented

'h' hide back faces (=culling) (default yes) 
	WARNING: this options dont works with some drivers

'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

'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

'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

Copyright © 2004-2020 by Björn Hagström All Rights Reserved