Seven Things for August 22, 2024

I keep thinking “tomorrow/next week/someday realsoonnow I should get one of these out.” Today’s that day! The excitement, it is palpable.

  • SIGGRAPH 2024: I missed it this year, for the first time since I started going in 1984 (no, I’m fine, and plan to be back next year). But, there’s always Stephen Hill’s wonderful list of SIGGRAPH 2024 Links. Just like being at SIGGRAPH, except for not seeing old friends and meeting new people, learning things through serendipity, and… OK, I’ll stop. If you’re reading this, you should go to SIGGRAPH, but that links page will keep you busy until then.
  • Stephen’s page reminded me to update our Portal Page, adding new links and fixing those that broke. And, yes, no one calls these sorts of things “portal pages” anymore, which is why I do. Be happy the font doesn’t also look like 1993.
  • One person at SIGGRAPH that I did hear about was Acerola (aka Garrett Gunnell), 222k (!) YouTube subscribers. He was at SIGGRAPH for the first time, evidently. He makes videos on various elements of computer graphics. Saying “various elements of computer graphics” – gah, that sounds dull. So, “these vids are lit, dog – no cap.” Well, I’ve watched only two of them so far: Your Colors Suck (it’s not your fault), which was solid technically (and it was nice to see a few of our “fair use” gallery images get reused) and What is a Graphics Programmer?, which had bits I knew little about, such as various positions in the games industry. This second video was a bit painful to me, in that it’s sad to see that learning computer graphics programming is not easy for most people to access. Offsetting that, it was a pleasant surprise that he recommends the RTR book, but I wouldn’t particularly choose ours as your first book o’ graphics. Is there a good general basics guide at this point? (Maybe these? Most are a decade old.) Well, Acerola did recommend the Unity tutorials, particularly on rendering, and the Rastertek tutorials for APIs.
  • Once you’ve caught up with the 282 technical talks at SIGGRAPH and all the rest, there are other smaller conferences out there. Beyond the EGSR resources I recently pointed at, HPG (colocated with SIGGRAPH in even years) and I3D also have YouTube channels of all talks and keynotes. Amazing. And now I’ll wander away from computer graphics, since this all is way more than you’ll ever digest.
  • One vaguely-related-to-computer-graphics books I finished last month is An Immense World, about animals’ many senses, and a bit on tetrachromacy. It’s a great bathroom book, where you read three pages and learn something new (which you’ll soon forget, but will tell a long-suffering spouse or friend or three about in the meantime). Scallops have eyes?!
  • That book ends on a sad note, pointing out how light and sound pollution affects animals. One thing that amazes me is how massively the price of lighting has dropped over past few hundred years. Four thousand years ago, a day’s wages could buy you maybe 10 minutes of light for a room. As recent as 1743 it took two days for the President of Harvard’s household to make a half year’s worth of candles (78 pounds of them). Compare that to a study done in the 1990’s, where a day’s work bought you 20,000 hours of (safer, non-smelly) light. LEDs are cheaper yet. The cost of light has fallen by a factor of 500,000 (from a great podcast series, BTW).
  • Unrelated fun fact: our brains like fractals. Begone, boring architecture! But what boring is, is still a matter of opinion. Brain scientists, help us out here… In the meantime, below are some fractally things for you to stare at, part of Safdie Architects‘ building, near where I live. Click that last link for places they’ve designed that look from a sci-fi film but are real (I love this one).

    (Feel like commenting? Too much spam on WordPress, so you could comment here instead.)

EGSR 2024 Talks and Photos now available

I co-chaired EGSR 2024 in London at the beginning of July. One of the great advantages of small conferences like this is that everyone in the room is someone you probably have a fair bit in common with. This EGSR was extremely well attended this year (I think it’s a record, something like around 150 registered). Here are links to resources.

All technical talks are available open access:
Computer Graphics Forum track
Symposium-only

Recordings of these talks, the two keynotes, and ceremonies are all available now on the YouTube Channel. Most entertaining award was the “Best improvised presentation with little clues.”

Some photo albums have been shared:
From Emilie Nogué
From Eric Haines
From Cyril Prichard

As always, you can find other links to resources for the papers from Ke-Sen Huang’s EGSR 2024 page.

Simple, Lossless Video Editor

I’m so happy about a program that Mauricio Vives told me about that I have to pass it on: Lossless Cut. Free, multi-platform, but so useful that I put money in the tip jar.

It’s a basic video editor, with one key feature: lossless editing. I’ve become the coordinator for a weekly talk series. Microsoft Teams does a nice job of recording the talks automatically, but the video files have a lot of warmup stuff at the start (people joining the meeting) and dead air at the end (it doesn’t stop recording until everyone’s left the meeting). I tried using another free editor, DaVinci Resolve, to trim away the useless bits and export. By default, the new MP4 file was about twice the size of the original! That’s no good. It’s undoubtedly due to whatever compression settings DaVinci Resolve is using by default. I might have eventually figured out some way to set those values, at the risk of muddying the video with a different compression scheme.

Lossless Cut avoids all that, maintaining the original video stream and just editing out the bits you don’t want. It does a bunch of things, but all I care about is trimming away the ends. I did, and it did, amazingly fast: when I did my first export I thought the program had failed, because it took two seconds to make a 200 Mb file. Makes sense, though.

The only confusing thing for me was doing the actual export. This critical command doesn’t appear anywhere in the menus up top. I finally noticed a big button in the lower right corner of the screen that said “Export” – aha. And clicking it comes up with an options dialog and no “OK” button – you need to click “Export” again. Which all sounds obvious when I write it out, but it took me a minute…

Anyway, this post isn’t really graphics related, but ’tis the SIGGRAPH talk season, so I wanted to publicize this wonderful thing as much as I could. Oh, and since I spent ten minutes of my workday writing this post, here’s NVIDIA’s list of papers and events at SIGGRAPH 2024 – there, time and post justified.

Update: Eran Guendelman notes that Avidemux is another free editor with lossless editing functionality.

There must be a way to export this video, if I could only figure it out…

Normals Gone Bad

Short version: check out my free, open-source tool to check if normals textures (those bluish things) are well-formed, and fix them when you find they’re not. Code’s for Windows, but it’s command-line driven and should be not-too-hard to translate to Linux. The page explains the problem, solutions, and proper formulas. Let me know of any goofs.

I’ve been finding over the years that lots of normals textures out there are wrong. Sometimes just a little bit, sometimes quite a lot. Part of the problem is tools that don’t properly normalize the output. Another source is that these textures are blithely resized or otherwise filtered, which doesn’t entirely work when you’re storing normals. My long-term goal is to check over any tools that generate these textures and make sure they work well, and if they don’t, try to get them fixed.

So, please help! If you generate normals textures, what tools do you use? I’ve listed the few I know near the bottom of the repo’s page. Write me at erich@acm.org, or reply on my Twitter post.

Also, if you know a good way to programmatically tell DirectX-style from OpenGL-style normals textures (yes, there’s a difference: Y normal component are negated for DirectX), please clue me in. I’ve tried a few ideas; no winner yet. I think converting from the texture back to a heightfield twice, reversing Y for one attempt, and seeing which is more reasonable, would do it, but haven’t seriously tried that yet.

Which one is poorly formed? I can’t (easily) tell without a tool, which is why I wrote one.

EGSR, HPG, and I3D

SIGGRAPH rejection notices went out yesterday, so time to note a few other graphics conference venues to consider.

I3D 2024: May 8-10, Cesium, Philadelphia, PA, USA. Well, you’re too late for the Call for Papers, but you should consider going.

EGSR 2024: July 3-5, Imperial College, London, UK. On July 2nd is a material appearance workshop at the same location. Call for Papers. I’m biased towards this one, since I’m a program co-chair this year.

HPG 2024: July 26-28, co-located with SIGGRAPH, Denver, CO, USA. Call for Participation.

I like these small conferences. There’s usually around 100 attendees, mostly researchers or interested people from academia or industry. Everyone in the room is someone you likely have a fair bit in common with, graphics-wise, compared to the vast but wide-ranging set of people at SIGGRAPH.

Two classic radiosity books now free

John Wallace, with Michael Cohen’s help, just finished the hard work of freeing a book they coauthored on radiosity, putting it under the least-restrictive Creative Commons license. They wrote the first computer graphics book on the subject, Radiosity and Realistic Image Synthesis, in 1993. It is now free for download. Skimming through the plates at the beginning is a walk down memory lane for me.

Ian Ashdown wrote the book Radiosity: A Programmer’s Perspective a year later, in 1994. Ian passed away last June. His book is available free for download on ResearchGate.

Michael Herf mentioned Ian’s book to me in Nov. 2022, asking if I knew of anything better on the subject of lighting units at this point. We included Ian in the conversation about resources (I had just finished my own summary – I wish I had recalled Ian had one before wading into this topic!).

Ian wrote: “Being self-taught in photometry and radiometry beginning in 1980, I struggled mightily at first with such concepts as illuminance and luminance with only the IES Lighting Handbook to guide me. I remembered this when writing my book, and focused on explaining the topics intuitively with a minimal amount of mathematics.”

Consider reading each books’ early chapters if you want a solid introduction to the terminology and equations of lighting. And, if you’d like to free up a book you have authored, please make the effort! In case it’s a help, I recorded some notes about the process Andrew Glassner went through when freeing up An Introduction to Ray Tracing in 2019.

Seven Things for January 1, 2024

Time to look both forward and back!

  1. It’s Public Domain Day, when various old works become legal to share and draw upon for new creative endeavors. The original Mickey Mouse, Lady Chatterly’s Lover, Escher’s Tower of Babel, and much else is now free, at least in the US. (Sadly, Canada’s gone the other direction, along with New Zealand and Japan.) Reuse has already begun.
  2. Speaking of copying, “3D prints” of paintings, where the robot uses brushes to reproduce a work, is now a commercial venture.
  3. Speaking of free works, happily the authors have put the new, 4th edition of Physically Based Rendering, published in March 2023, free on the web. Our list of all free graphics books (we know) is here.
  4. Speaking of books, Jendrik Illner started a page describing books and resources for game engine development. His name should be familiar; he’s the person that compiles the wonderful Graphics Programming weekly posts. I admit to hearing about the PBR 4th edition being up for free from his latest issue, #320 (well, it’s been free since November 1st, but I forgot to mark my calendar). This issue is not openly online as of today, being sent first to Patreon subscribers. Totally worth a dollar a month for me (actually, I pay $5, because he deserves it).
  5. ChatGPT was, of course, hot in 2023, but isn’t quite ready to replace graphics programmers. Pretty funny, and now I want someone to add a control called Photon Confabulation to Arnold (or to every renderer). Make it so, please.
  6. The other good news is that our future AI overlords can be defeated by somersaults, hiding in cardboard boxes, or dressing up as a fir tree.
  7. What’s the new graphics thing in 2023? NeRFs are so 2020. This year the cool kids started using 3D Gaussian splatting to represent and render models. Lots and lots of papers and open source implementations came out (and will come out) after the initial paper presentation at SIGGRAPH 2023. Aras has a good primer on the basic ideas of this stuff, at least on the rendering end. If you just want to look at the pretty, this (not open source) viewer page is nicely done. Me, I like both NeRFs and gsplats – non-polygonal representation is fun stuff. I think part of the appeal of Gaussian splatting is that it’s mostly old school. Using spherical harmonics to store direction-dependent colors is an old idea. Splatting is a relatively old rendering technique that can work well with rasterization (no ray casting needed). Forming a set of splats does not invoke neural anything – there’s no AI magic to decode (though, as Aras notes, they form the set of splats “using gradient descent and ‘differentiable rendering’ and all the other things that are way over my head”). I do like that someone created a conspiracy post – that’s how you know you’ve made it.

OBJ lives on

Yesterday I accidentally drag-and-dropped an OBJ file onto Visual Studio 2022 (I was aiming for G3D’s viewer, which I love for OBJs, despite one annoying bug – hoping it’s fixed someday). To my surprise, VS2022 opened and displayed it! It even looked fairly reasonable. Googling a bit, they seem to also support FBX and DAE (who uses DAE nowadays?). Sadly, this feature doesn’t work for glTF or USD files (yet…).

The controls are little odd, e.g., use the mouse wheel and the model moves a bit up and down. But, control-mousewheel does what you’d expect, move in and out. Shift-mousewheel moves right and left. Control-leftmouse pans, alt-leftmouse rotates. Lots of other UI buttons around the viewport to explore. Fun!

VS2022, you surprised me. G3D’s prettier view follows.
G3D, with customized background. However, there’s a bug where the R of RGBA is interpreted as the A.