Gouraud Competition


Gouraud seems to be a real pain in the ass of many coders. First time this compo was cancelled due to lack of contributions, and even this time we had had the same problem. Only 2(3) contributions this time, from BlueBerry, Luken and me (Nao) But I just discovered after deadline that mine entry has 2 fatal bugs (ie. crash and object dissappearing on some very particular cases). Unfortunatly, I found me in the difficult position to judge myself so, I retired my entry from the competition. At least we have a winner BlueBerry with a stunning routine, very short and fast indeed!

Place Contributor Length Used Algorithm Accuracy
1. Blueberry 216 edges table & fake screen very good
2. Luken * 226 dual interpolation good

Luken entry doesn't seems to rotate vertex normals, so, when object rotates, light rotates too, like object and light are a rigid body. Anyway.. rules doesn't strictly speak about this case, so there was no penalty. Also notice that Luken used a very short gouraud rasterizer (but painfully slow).

No doubts for BlueBerry's routine, he is the winner, cause shortest (and fastest) code and a very good accuracy on ligthening (less in edges calculations). Maybe, joining BlueBerry's rotation and projection code, and Luken's gouraud rasterizer, should be possible to make a even shorter routine :-)

In case you want to see the contributions code. Download the package here Please remember that, even if you can download these routines, they are still not public domain. Ask before using any of these routines, or give credits at least.



Smallest Gouraud Shader Competition

Gouraud compo is back! Things are a bit more complex respect other compos. The aim is to write a tiny gouraud - shader. Due to that you have more time than before to finish this task - deadline is saturday, july 31,1999 at 21.00 CET .
All contribution have to be sent to Nao. Fetch your personal competition package (also including the rules as textfile) here.

Many thanks to Flynn for preparing the great init-source and screenhandler.


  • The aim is to write a routine rendering a gouraud-shaded vector-object to a chunky buffer.
  • You are given a full init-routine with chunky screenhandler and two objects. Remember, that your routine must be able to display both objects (well - two tori :) )
  • A sinetable with 1024+256 word-entries and an amplitude of +-32760 is also given.
  • The screen you have to render to has a width of 256 and also a height of 256.
  • "gouraud.s" is the only file you may change.
  • Your routine must utilize both palette ranges. (2x128 colors) A colorflag is provided for each triangle in the object-file.
  • All brightness-calculations have at least 8.8 accuracy. (No ugly shading-bugs)
  • The triangle-drawer has to be accurate. No gaps between the polys! (black dots etc.. )
  • Two rotation angles are given. (You can control them manually by pressing the right mousebutton while moving mouse)
  • The routine must be working on 68020-68060! When you are sick enough to use selfmodifying code, make sure that it does also work on 060.
Well - please download the competition package for more detailed rules.