Remix.run Logo
jasonwatkinspdx 3 days ago

With Carmack it's consciously a dilliante project.

He's been effectively retired for quite some time. It's clear at some point he no longer found game and graphics engine internals motivation, possibly because the industry took the path he was advocating against back in the day.

For a while he was focused on Armadillo aerospace, and they got some cool stuff accomplished. That was also something of a knowing pet project, and when they couldn't pivot to anything that looked like commercial viability he just put it in hibernation.

Carmack may be confident (ne arrogant) enough to think he does have something unique to offer with AGI, but I don't think he's under any illusions it's anything but another pet project.

defen 3 days ago | parent [-]

> possibly because the industry took the path he was advocating against back in the day

What path did he advocate? And what path did the industry take instead?

jasonwatkinspdx 2 days ago | parent [-]

Well way back in the day there was the old Direct3D vs OpenGL debate, where Carmack heavily favored an open standard and ecosystem. And what ended up happening is NVIDIA just has defacto control of things now.

But more technically, when he was experimenting with what became the Doom 3 engine, he favored a model of extending the basic OpenGL state machine to be able to do lots of passes with a wider variety of blending modes.

Basically, you get "dumb" triangles, but can render so many billions of them per frame you build up visual complexity, shadows, lighting, etc that way.

The other model has its roots in Renderman and similar offline rendering frameworks. Here a small shader kernel is invoked per vertex and per fragment. Your shader can run whatever code it wants subject to some limitations. So you get "smart" triangles, and build up complexity, shadows, lighting, etc through having complex shaders.

The shadow algorithm used in Doom 3 is a great example of the difference. Doom 3 figures out the shadow volume, and renders it as triangles with the OpenGL modes set such that how many shadow volumes a given pixel intersects is recorded in the stencil buffer. Then you can render the scene geometry with a blending mode where the stencil selects if you're inside shadow or not.

This is in contrast to shadow map style algorithms, where you render from the PoV of the light into a depth buffer, then inside your fragment shader you sample that shadow map to figure out if the fragment is occluded from the light or not.

Anyhow, Doom 3 is the only major game to use stencil volume shadows afaik.

And not to hang Carmack's dissatisfaction on just that alone, I think it is clear he didn't want a graphics world where NVIDIA was running everything.

I also think not being able to keep up with Unreal Engine's momentum was maybe part of it too.