Search In
• More options...
Find results that contain...
Find results in...

Lead id programmer John Carmack updated his .plan yesterday with a small blurb about a new NVidia white paper on the subject of shadow volume rendering, which is of course one of the cornerstones of the Doom 3 engine. Also on the site is a small document, dating from May 2000, detailing previously unpublished correspondence with Carmack where he talks about his forays into shadow volume rendering. Here's a little blurb to make your head hurt:

The next iteration involved attempting to "preload" the standard stencil shadow algorithm by the number of clipped away planes. I first drew the shadow volumes with depth test disabled, incrementing for back sides and decrementing for front sides. This finishes with a positive value in the stencil buffer for each plane that is clipped away at the view plane. The normal depth tested shadow volume is drawn next, with the change polarity reversed, decrementing for back sides and incrementing for front sides. The areas not equal to the initial clear value are in shadow.

Ow, I need to go lie down.

## User Feedback

My head fucking hurts from trying to understand that

Carmack is actually ET.

Typical Coder's way to develop new stuff. First they toy with the idea, then they add stuff until it works in all cases, and then realize how redundant is the code and proceed to write it all over again in a minimalistic way.

Who says coding's not an art? Afterall it's all about inspiration.

Really, who says that?

They should be shot imho :)

ZALDRON! EXPLAIN!

Really, a couple of years ago when I was working in a game with several of my real-life friends I noticed this trend (4 years and minimal progress, school sucks).

I remember we were working on a isometric engine like the one in Ultima VII or LBA. While I was drawing some wall and doors templates, this coder friend was trying to develop a fast way to sort the sprites and render them correctly depth-wise. He went for 20 minutes, working with the math in a piece of paper. That's when he started laughing and banging his head against the wall. I take a look at the piece of paper and realize the first draft of the algorythm contained a couple of arc sin and arc cos, while the final form was just :

X + Y

Damn I miss those times.

Originally posted by Zaldron
Really, a couple of years ago when I was working in a game with several of my real-life friends I noticed this trend (4 years and minimal progress, school sucks).

I remember we were working on a isometric engine like the one in Ultima VII or LBA. While I was drawing some wall and doors templates, this coder friend was trying to develop a fast way to sort the sprites and render them correctly depth-wise. He went for 20 minutes, working with the math in a piece of paper. That's when he started laughing and banging his head against the wall. I take a look at the piece of paper and realize the first draft of the algorythm contained a couple of arc sin and arc cos, while the final form was just :

X + Y

Damn I miss those times.

My long life dream is to create a game.

LBA is called Relentless in the States, I think...

Yeah that one. Anyway the game was going to be a RPG following the lines of Ultima VII and Serpent Isle. Just at 800x600@24 :)

Originally posted by Zaldron
I remember we were working on a isometric engine like the one in Ultima VII or LBA. While I was drawing some wall and doors templates, this coder friend was trying to develop a fast way to sort the sprites and render them correctly depth-wise. He went for 20 minutes, working with the math in a piece of paper. That's when he started laughing and banging his head against the wall. I take a look at the piece of paper and realize the first draft of the algorythm contained a couple of arc sin and arc cos, while the final form was just :

X + Y

Damn I miss those times.

Roflmao!

I wish that was possible at all times :)

Originally posted by Zaldron
Typical Coder's way to develop new stuff. First they toy with the idea, then they add stuff until it works in all cases, and then realize how redundant is the code and proceed to write it all over again in a minimalistic way.

Who says coding's not an art? Afterall it's all about inspiration.

Yup,this is often the creative path and not just in gaming. Simplicity is often the desired result but 'simple' should never be confused with 'easy' as it often is.You usually have to work through the 'guff' to get to the core.

The cloest thing to me making a game was when we had to make one for an assignment at school.

I totally botched up the code and the game had millions of bugs and errors. You flew around in a plane shooting the answers to maths problems...but I still got a C+ for it so I was happy.

this is all way over my head. I am an arts person.

When will id software find the five minutes to program a game that goes with all these graphical effects?

I once made a game in Turing that involved blasting away Pikachu into gibs... it had animated gibs and shotgun sounds and everything.

Heh

I've made a game where you shoot my face. It's available on the Internet - see if you can find it.

I think what Carmack is trying to say is that he's programming a flying plane that will spread ammo clips over the city in the game, and that he's in a dark area of the room he's working in, hence the shadows...

I think the last line means Linguica is sick...

Carmack should be programming instead of writing that mumbo jumbo =P

Originally posted by Fredrik
I've made a game where you shoot my face. It's available on the Internet - see if you can find it.

!!!I bet a lot of people would LOVE to get their hands on that :)

Originally posted by Maonth

!!!I bet a lot of people would LOVE to get their hands on that :)

Heh haven't you played it already?

Originally posted by Fredrik
Heh haven't you played it already?

No dammit!

Do you hate fredrik that much?

Originally posted by dsm
Do you hate fredrik that much?

No. I love fredrik in a non-gay, brotherly fashion.

Clearly what Carwank is trying to say is that the next iteration involved attempting to "preload" the standard stencil shadow algorithm by the number of clipped away planes. So first he drew the shadow volumes with depth test disabled, incrementing for back sides and decrementing for front sides. This finished with a positive value in the stencil buffer for each plane that was clipped away at the view plane. The normal depth tested shadow volume was drawn next, with the change polarity reversed, decrementing for back sides and incrementing for front sides. The areas not equal to the initial clear value were in shadow.

To demonstrate imagine we were shining a bright light into Fredrik's face:

```        ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ |/
___/|~ ~ ~ ~ ~||||||||        |/
[___ | ~ ~A~ ~ |o) (o)|        |/
\|~ ~ ~ ~ ~| ( )  |   B    |/
~ ~ ~ ~ ~\____ |        |/
|   |        |/

```
Now apart from the fact that Fred is now permanently blind due to the power of the 2 million candlepower light being shone directly into his eyes from a distance of 30cm, we can see that:

o Area A is lit up
o Area B is in shadow

Now imagine Carwank was to "preload" (drop) the standard stencil shadow (10 ton weight) by the number of clipped away planes (onto Fred's head). The result would be something like this:
```        ~ ~ ~ ~ ~ ~ __~ ~ ~ ~ ~ |/
___/|~ ~ ~ ~ ~ __(__)_ _      |/
[___ | ~ ~A~ ~ /       | \   B |/
\|~ ~ ~ ~ / 10 TON |  \    |/
~ ~ ~ /_________|___\   |/
\$%&^^%&\$%\$%%^    |/

```
Now if we were to measure the new area B compared with the old area B and then factor in the weight of the ten ton weight, using a formula something like this
``` / (B.x^10 * B.y^10)                     \
|  ------------------ * B.z^10 * B.y^10 | * 1337E10 * \$666 & 110110110
\ (B.z^10 * B.x^10)                     /

```
We'd get the sextant coordinates to the secret map showing the location of the lost city of atlantis, in the centre of which lies the great lost oracle database containing the shadow values for every possible situation in any fps game EVER, all within a 12k zip file, searchable with only a 0.004 second delay.

I hope this explanation clears up any confusion, feel free to contact JC himself for any clarification, through the healing power of prayer! You CAN change your life!

Here's a link to a picture of the bug:

http://www.geocities.com/Virgil_32_0/pics1/dw_1.bmp

As you can see, most of the text is either black (the color of the backgound) or illegible.

I use Netscape 4.7 (to avoid some of the browser privacy issues IE brings up...)

Jonathan:

ROFLMAO

Fucking post of the year.

But where's my long hair?

Jonathan: JC says it is 20 ton.

>The next iteration involved attempting to "preload" the standard
>stencil shadow algorithm by the number of clipped away planes. I
>first drew the shadow volumes with depth test disabled, incrementing
>for back sides and decrementing for front sides.

How can you possibly increment for back sides and decrement for the front especially on shadow volumes, don't they need a substitute volume or how is the entire volume counted for? Someone rectify this problem for me, I do not understand.