- There’s a new introductory book out,
*Foundations of 3D Computer Graphics*, by Steven Gortler. I should get my copy tomorrow. Skimming through the first few chapters (you can see these on Amazon), the focus is definitely on solid theory, which I appreciate. I look forward to spending some quality time with it.*(thanks, Pete)* - The acronym for the day is
*MOOC*, Massive Open Online Course, a free course for anyone with a reasonable computer. Everybody’s doing it: Ravi Ramamoorthi with Foundations of Computer Graphics, I’m working on the course Interactive Rendering, John Owens and Dave Luebke are doing Introduction to Parallel Programming, etc. - Sean Lilley has a great slideset summarizing the history of shadow algorithms for GPUs, made for this University of Pennsylvania class. Sean and others are currently working on a GigaVoxel and Sparse Textures project, blogging as they go.
*(thanks, Patrick)* - You’ve probably heard of the Valve Employee Handbook. This video gives a nice summary in just two minutes. Fascinating company structure! Sounds lovely and inspiring. But, telecommuting is out.
*(thanks, Jason)* - NGUI’s history: more about UI that “true” 3D graphics, but it’s for Unity. A pretty interesting tale! Moral, maybe: make libraries, not games
*(thanks, Renaldas)* - A WebGL demo from another universe. Note the value set on line 10.
*(thanks, marpi)* - This mask creeps me out. Instructions how to build one are here.
*(thanks, BoingBoing)*

You are currently browsing articles tagged **shadows**.

Andrew Woo and Pierre Poulin will be signing their new book “Shadow Algorithms Data Miner” at the CRC Press/AK Peters booth, #929, at SIGGRAPH, Wednesday, 3-4 pm.

I just learned of a new book coming out: “Real-Time Shadows“, by an excellent group of researchers (a little more info here). I assume this book will be based on the authors’ 148-page “Casting Shadows in Real Time” course notes and related publications. This subject deserves its own book. There are enough interesting principles and so many variants and subtleties that I’m happy to hear this topic will get thorough coverage. Our book page is updated.

Looking around at other book-related resources, I noticed some interesting bits. John Vince’s “Geometry for Computer Graphics: Formulae, Examples and Proofs“, from 2005, has been reissued in a softcover edition. It’s pricey, as Springer books can be, and weighs in at just 364 pages, but it’s an information-packed volume. It’s a kind of book you rarely see now, one with a dense collection of formulae, like CRC Press used to specialize in. Google Books sample here. Some of it’s pretty tangential to computer graphics – normally I don’t need proofs about things like the opposite angles of a parallelogram being equal – but it’s fun to page through: “Someday I’d love to find a use for that coiled ring equation”. Whether you’ll ever need 1/100th of the information in this book depends on you. It seems like a good fit for demoscene programmers who want procedural functions and model generation, for example. Anyway, something to see if your university library has, just to page through and know it exists.

Speaking of geometric resources, I was sad to see the site geometryalgorithms.com appears to be defunct. What’s key to remember in such cases is that there’s the Wayback Machine. Just put in a dead URL and more times than not this site will have a copy. So the Geometry Algorithms site lives on here! Luckily, math doesn’t really rot, so the articles are still worthwhile. The bad news is that a few of the figures are missing.

For technical book authors, I ran across this interesting little tool: Detexify^{2}. Draw the symbol you need, it will show you likely matches and what LaTeX you need. I’ve found it’s pretty accurate, though seemed to have problems with “not equals” half the time I drew that symbol as a test. Anyway, it’s probably no more efficient than just looking it up here or here, but is more fun.

Last resource for the (mothers’) day: so you want to explain the basics of computer graphics to your mom. Frédo Durand’s six page introduction is not a bad place to start. At the least, you can use the figures at the end to explain ideas.

I’m back from a NYC trip (highlight: went to the taping of the Jimmy Fallon show and saw Snooki & Laurie Anderson – now there’s a combo; if only they had collaborated) and a San Francisco trip (highlights: the Autodesk Gallery – open to the public Wednesday afternoons - plus the amusingly-large and glowing heatsink on a motherboard at the NVIDIA GDC reception). So, it’s time to write down seven other cool things.

- A convincing translucency effect was presented at GDC by the DICE guys (there’s precomputation involved, but it looks wonderful); Johan Andersson has a rundown of other DICE presentations. Other presentation lists include ones from NVIDIA and Intel, which I need to chew through sometime soon.
- Vincent Scheib has a quick GDC report, and a presentation on HTML 5 and other browser technologies (e.g. WebGL), with a particular interest in the handheld market. Vincent mentions the Unreal GDC demo, which is pretty amazing.
- Intel has a nice shadows demo, showing the various tradeoffs with cascaded and exponential variance shadow maps. It compiled out of the box for me, and there’s lots to try out. My only disappointment was that Lauritzen et al.’s clever shadow tricks are not demonstrated in it! Their basic ideas center around the idea of a prepass of the scene. They get tight bounds on the near and far view planes by finding the min and max depths, and tighten the shadow maps’ frustums around the visible points. Simple and clever, large improvements in shadow quality in real scenes, and relatively easy to implement or add to existing systems.
*(thanks to Mauricio Vives)* - Feed43: This is a nice little idea. It tracks any web page you want, and you specify what is considered a change to the page. When a change is detected, you’re given an RSS ping. Best part is, you can share any RSS feed created with everyone. Examples: Ke-Sen Huang’s great conference paper list, and The Ray Tracing News. If you make a good feed, let me know and I’ll pass it on here.
*(thanks to Iliyan Georgiev)* - This one’s old, but it’s a great page and I found it worthwhile, a discussion of gamma correction and text rendering. The surprising conclusion is that gamma alone doesn’t work nicely for text (it does wonders for line antialiasing, as I hope you know: compare uncorrected vs. corrected). It turns out that things like TrueType’s hinting has been tuned such that antialiasing and gamma correction can be detrimental.
- An interesting tidbit from the government report “Designing a Digital Future“: on page 71 is an interesting section. A sample quote: “performance gains due to improvements in algorithms have vastly exceeded even the dramatic performance gains due to increased processor speed.” They give a numerical algorithms example where hardware gave a 1000x gain, algorithms gave a 43000x gain, 43 times as much.
*(thanks to Morgan McGuire)* - My Minecraft addiction has died down a fair bit (“just one more project…”), but I was happy to see Notch make a blog post with some technical chew, with more posts to come. He talks about a problem many apps are starting to run into, how to deal with precision problems when the terrain space is large. His solution for now, “it’s a feature!”, which actually kinda makes sense for Minecraft. He also starts to describe his procedural terrain generation algorithm.

**Tags:** gamma, GDC, Minecraft, shadows, text, translucency, Unreal

I asked Daniel Scherzer about my post about his book. He said it’s about right (and the long subtitle is indeed a Verlag decision).

The cool thing that turned up: their upcoming STAR survey on hard shadows will be more theoretical and detailed than his thesis’ survey. It will be similar to the hard shadow section in the SIGGRAPH Asia 2009 course Casting Shadows in Real Time (which has a solid 90 pages on direct illumination shadow algorithms, plus more on related methods).

I’ve updated the original post with this information, but wanted to make a separate post so that people wouldn’t miss this valuable overview on shadows and ambient occlusion (just a tiny bit on the latter).

Amazon sent an auto-recommended of this book to me. Unlike last time, which was humorous but unrelated, I actually appreciate this one: “Temporal Coherence in Real-Time Rendering: Practical Approaches for Capitalizing on Temporal Coherence in the Domain of Real-Time Rendering,” by Daniel Scherzer.

At $81 for a 132 page book, I suspected it was a thesis reprint. Indeed it is: you can download the thesis from here. The thesis is 130 pages long, so my guess is the book form adds nothing (and subtracts $81).

So, you can download it for free now, but should you read it? Well, it is a thesis, which means it collects various papers and presents each in turn. This thesis focuses on using temporal coherence, i.e. use previous frames’ computations in various ways. It includes Daniel’s hard shadow (history buffer), soft shadow, and discrete LOD blending work, as listed here. Since it’s a thesis, the author can stretch out a bit more and cover various areas in depth. The focus is on improving image quality: hard shadows are higher resolution, soft shadows look smoother. There are limitations to his approaches, e.g., the lights are fixed in place, and objects generally should be static.

As with most theses, it also includes an extensive “previous work” section at the beginning. There is a 23 page overview of a number of shadow techniques and LOD work, explaining strengths and weaknesses. From my skim, this looks quite good; not quite all-encompassing (which is good: there are way too many shadow papers), but hitting most of the major areas of research. Let’s put it this way: if and when we write a fourth edition, I’ll certainly carefully read his categorization of various problems and think about how to integrate it into our section on shadows. His is the best recent overview of the subject that I’ve seen. He’s also the coauthor of an upcoming survey on hard shadows, not yet available for download but which I suspect is similar to his thesis’ overview.

*Update:* I asked Daniel about this post, he said it’s about right (and the long subtitle is indeed a Verlag decision). The book version contains an index, and different (non-copyright-protected) images. Also of interest, their upcoming STAR survey on hard shadows will be more theoretical and detailed, similar to the hard shadow section in the SIGGRAPH Asia 2009 course Casting Shadows in Real Time (which has a solid 90 pages on shadow algorithms).

I’ll someday run out of titles for these occasional summaries of new(ish) resources, but in the meantime, this one’s “This and That”.

Christer Ericson’s article on dealing with grouping and sorting objects for rendering is excellent. It mostly depends on input latency, but has concepts that can be applied in immediate mode.

An element that continues to renew the field of computer graphics is that the rules change. This article is about taking Quake 2 (from 1997) and moving it to a modern GPU.

If you haven’t seen it yet, Farbrausch’s demo “debris” is truly impressive. It’s only 183,462 bytes, and is absolutely packed with procedural content. Download here (last link works). Or be lazy and watch on YouTube.

NVIDIA’s pulled together its resources for shadow generation and ambient occlusion all onto one handy page (plus ray tracing – just one entry so far, but it’s a good one).

How to deal with various rendering paradigms on multiple platforms? GRAMPS looks intriguing.

Gamasutra put a useful *Game Developer* article online, all about commercial middleware game engines currently available.

OpenGL will always exist, since Macs and Linux need it. It’s easier to use in college courses because of its clarity and readability. But otherwise the pendulum’s swung far towards DirectX. Phil Taylor comments on and gives some historical context to the controversy around the latest release, OpenGL 3.0.

A nice trend for OpenGL is that people continue to write useful bits, such as GLee, which manages extensions.

New info on older effects: blur and glow, volumetric clouds, and particle systems.

The glorious teapot. I like “a wireframe view”. Yes, the real thing is taller than the synthetic model, as the model makers were compensating for non-square pixels.

“What’s the future hold?” is always a fun topic, one we’ve used each edition to end our book. I liked this presentation on SlideShare for its sheer “here are a hundred things that hurtle us towards the Singularity” feel, though I don’t buy it for a minute. SlideShare, where it is hosted, is a pleasant medium-attention-span kind of place, with all sorts of random and fun slidesets.

Finally, I am pleased to find that LittleBIGPlanet is just as gorgeous as it looked like it would be. I’ve played myself for only a bit, but walking by when my kids are playing I find I have to stop and stare.

**Tags:** ambient occlusion, blur, clouds, demo scene, DirectX, future, glow, OpenGL, optimization, particle systems, Quake 2, shadows

## Recent Comments