
Illumination for Computer Generated Pictures (1975) [pdf] - pera
http://www.cs.northwestern.edu/~ago820/cs395/Papers/Phong_1975.pdf
======
jacquesm
I was 21 or so when I discovered this paper and re-implemented Phong shading
for a combination of a an early i386 (1986 iirc), combined with a co-processor
board that had a DSP32 on it, which - amazingly - would do some pretty
impressive float calculations. It was a tricky combo to program for, the bus
was a limiting factor but when it worked it was quite fast. I later also
ported the vector math section of a small ray tracer to that DSP32. The main
application the designers of the board had in mind was real time filtering of
telephone voice data streams (the board had two RJ11 jacks) so it wasn't an
ideal match for graphics work but it worked quite well in spite of that.

Given the resolution limitations of the display hardware I had access to at
the time computing the images was actually easier than displaying them, in the
end I resorted to all kinds of very fancy dithering schemes and palette hacks
to output the images, some so faint that you had to view them in a darkened
room (but they looked pretty good, they were faint because I used interlocking
RGR/BGB groups of pixels (6 pixels to display two true color pixels) so you'd
lose a lot of light output. Fun times!

------
theobeers
I’m always amazed to see work like this from the ’70s. (I know I shouldn’t be,
but some blind spots die hard…) My father was taking undergraduate computer
science classes at that time, and his stories, many of them involving punch-
card mishaps, left me with a different idea of what was possible before my
generation. In one of his courses—it may even have been in the same year that
this paper was published—his final project was to design a program to apply
right-hand justification to text. It was a real challenge for him and the
other students in his group. My understanding is that they were able to get as
far as calculating how many words could fit in a given line, and how many
extra spaces should be added to bring it flush with the right margin. But all
of those spaces would be dumped after the first word in the line, not
distributed evenly. They still got a passing grade.

Anyway, sorry to ramble. It’s cool to look at actual work from that period.

------
ChuckMcM
Ah the original shading paper from B. Phong. It really was remarkable the
difference it achieved with similar computation to Gourard shading. I
implemented a Phong shader for Amiga "HAM" mode and was quite pleased with the
results.

~~~
jacquesm
'Gouraud':

[https://en.wikipedia.org/wiki/Gouraud_shading](https://en.wikipedia.org/wiki/Gouraud_shading)

------
vicnov
Very sad. He passed away the same year this article was published.
[https://en.m.wikipedia.org/wiki/Bui_Tuong_Phong](https://en.m.wikipedia.org/wiki/Bui_Tuong_Phong)

------
bch
This paper also cites MAGI[0] who would go on to bring us light cycles and
recognizers[1][2][3].

[0]
[https://en.m.wikipedia.org/wiki/Mathematical_Applications_Gr...](https://en.m.wikipedia.org/wiki/Mathematical_Applications_Group)

[1]
[https://en.m.wikipedia.org/wiki/Tron](https://en.m.wikipedia.org/wiki/Tron)

[2] [https://youtu.be/7qtNAArfCfQ](https://youtu.be/7qtNAArfCfQ)

[3] [https://youtu.be/-BZxGhNdz1k](https://youtu.be/-BZxGhNdz1k)

------
KurtKoolbrain
Phong shaders were the 'cool kids' thing in the 90s when I had my first Amiga
A1000. My how far we have come!

