Monthly Archives: January 2019

“Ray Tracing Gems” nears completion

Tomas and I turned over all our final files for Ray Tracing Gems to the publisher on January 2, and we’re gathering edits from the authors. The Table of Contents for the 32 articles is now public. The publisher’s webpage is up. There’s an Amazon page in progress (BTW, the after-the-colon title, “High-Quality and Real-Time Rendering with DXR and Other APIs,” was requested by the publisher to help search engines find the book).

The hardback book should be available at GDC and GTC, with a free electronic version(s) available sometime before or around then, along with a source code repository. Also, the book is open access, under this CC license. This means that the authors, or anyone else, can redistribute these articles as they wish, as long as it’s a non-commercial use and they credit the book as the source.

Here’s the cover, which should be on the other sites soon.

"Ray Tracing Gems" cover

By the way, if you want to read an article about ray tracing actual gems, this one is a good place to start. I happened upon it by accident, and it’s educational, approachable, and not dumbed down. The design criteria for a good gem cut are fun to read about: maximize reflected light as well as contrast, take into account that the viewer’s head will block off light, and so on. If you need a more serious paper from graphics people, there’s this article. Surprisingly, though fairly old, it is newer than any of the articles cited by the first, much newer article.

“An Introduction to Ray Tracing” is now free for download

Short version: the first book on ray tracing, An Introduction to Ray Tracing, from 1989, is now free to download. You can get the PDF or DJVU version. Note that the PDF has been updated with one erratum fix (so far), and currently is at version 1.1.

Longer version: with Pete Shirley releasing for free his three introductory mini-books on ray tracing this summer, then Matt Pharr releasing the book Physically Based Rendering for free, I asked Andrew Glassner if he could get the rights to release the classic An Introduction to Ray Tracing. He was game, clearing it with the authors, tracing down the right person at Elsevier to ask, going through the paperwork, and – freed! He just wrote me:

I’ve just now received the countersigned rights release for An Introduction to Ray Tracing. I guess the contract was in my name, because I now own the rights! I hereby grant you permission to publicly share the aforementioned book, or the manuscript thereof, or an electronified version of the manuscript thereof, electrically encoded and presented using one or more typefaces of human design, upon a website for the general reading pleasure of the general reading public. Go for it!

So going for it I am. Enjoy! Yes, it’s ancient. But, surprisingly, it’s still a fine introduction in a bunch of ways – math doesn’t rot, and many of the bits from back then are still used today – stochastic sampling, bounding volumes, adaptive supersampling, etc. (Matt Pharr agrees). Andrew’s page about the book (and some history about the cover) is here.

Me, I expect this will cut into my yearly royalties – I earned $6.22 last year on the book – but, ah, the giant sacrifices I make for The Greater Good, and so humble, too. If you consider free books a travesty, you can always buy a copy off this insane page on Amazon – a steal (on someone’s part) at $588.23. The normal Amazon book page is not so bonkers.

Update: Andrew was asked what sort of license the book is under. We discussed it and he chose the Attribution 4.0 International (CC BY 4.0) license, the most liberal of the CC licenses. To quote the main bits:

You are free to:

Under the following terms:

  • Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use
  • No additional restrictions — You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits.

Do see the whole license page for further details.

If by some miracle you use the first printing of the book, I’ve made an errata page. All these errors are fixed in the PDF and DJVU versions, except as noted.

Free Quake 2 demo using real-time path tracing in Vulkan

If you have an NVIDIA RTX GPU, go get this demo of Quake 2 path tracing by Christian Shied and many others. It’s free, and easy to install, as the directions actually work: install the Quake II Starter, download and unzip their Windows executable, copy the .pak files from the Starter to q2vkpt\baseq2, (install the Visual Studio 2017 redistributable if you don’t have it), and run. It’s single player and multiplayer.

It’s Quake 2 in all its crazy-fast running and gunning glory, with shots and explosions that light up the walls, reflective water, and other bits of eye candy. To quote their page:

This client implements fully dynamic illumination without precomputation supporting area light sources, reflections, soft shadows, and indirect illumination. This client is a port of our real-time path tracer vkpt and is based on the Quake II engine Q2PRO.

This effort comes about a decade after Daniel Pohl’s Quake Wars ray tracing conversion, but now works on a normal machine. The ray traced version isn’t particularly more playable than the original, e.g., the lighting for the button to open the cage for your first new gun makes it invisible, but it’s pretty great to see fun little effects. I think all of these effects could be done with rasterization tricks – we are talking about a 21-year-old game here, so the content’s not much to work with – but I suspect it was much easier to add them all with ray tracing than specialized hacks, and with fewer artifacts. That said, they really are path tracing and denoising each frame, which is impressive. See their site for more information and screenshots and Githubbed code.

Anyway, two screen shots I made today, running through the original and the ray traced, with approximate original vs. RTRT shots – something they don’t have on their site. They have nice example videos, which are more fun. I kept trying to take a screen shot of the blaster in use, as its bullets light up the nearby environment, but couldn’t hit the screen capture button quickly enough.

 

 

Hire a Copy Editor

My last post was all the free and easy ways to improve your written work. These get you only so far. Going from “free” to “a penny or more” in today’s friction-free Internet economy is a hard sell, but you should consider it. Would you pay $40 to have your submitted or completed article be more professional and readable? If you’re a researcher, I’d hope you’d answer “of course.” The trick is knowing how to do so.

My answer: hire a technical-oriented copy editor. Specifically, hire Charlotte Byrnes – contact email’s below. She did all the copy editing and typesetting for Real-Time Rendering, 4th edition, and all the copy editing for Ray Tracing Gems I and II. Me, I’m not planning on writing another book for a decade or so – that’s about how long it takes for me to forget all the pain from these previous times. Charlotte’s not part of that pain – just the opposite. I asked Ms. Byrnes if, with our book done, she was accepting article-editing work. She said she’s currently available, though may have to turn down work if the demand becomes unmanageable. Now that we’re not selfishly monopolizing her time, I asked if I could pass her name along – she agreed, and so, this post.

Of the four editions of Real-Time Rendering, she’s done by far the most clean-up work on our text. I recall a previous edition where the copy editing was nothing but thousands of commas getting added, page after page of little blue “add comma” marks, which (to meet the deadline) I had to type in. Ugh, and I knew there were sentences that could have been polished and improved, but simply weren’t. Charlotte improves sentences, makes equations look better, notes problems with notation, cleans up bibliography references, on and on. With Charlotte, we send her the .tex file, figures, and whatever else is needed to compile the article. She edits the .tex and .bib files, making corrections and adding a few notes about elements she wants the authors to check.

My advice: if you’re using .tex, don’t use “\import”, just send her one .tex file with all the text – it’s much easier on both her and you, as you can then do a “diff” with your one original file and see what’s changed. I also recommend putting hard line breaks at 80 characters (e.g., in TeXstudio use “Idefix | Hard Line Break…”), as then the “diff” will be easier to view. Or use WinMerge, which shows long-line diffs without scrolling.

Also, note with the rates below that there’s an assumption the article is in relatively reasonable shape. If you know your non-native-English is not that great, she’s willing to edit, but it’s more per page, negotiable.

Here’s the info she sent:

I have over 14 years experience in academic scientific publishing, both editorial and production, specializing in mathematics and computer science (particularly in computer graphics and game design).

Available Services

o   Copyediting
o   Developmental editing
o   Typesetting in LaTeX
o   Word-to-LaTeX conversion
o   LaTeX-to-Word conversion
o   Proofreading
o   Entering edits in Word or LaTeX files
o   Project management for collections with contributing authors

Base Rates

Copyediting: $2.50 per page/1200 characters
Typesetting: $3.50 per page
Conversion: $2.00 per page, plus $1.00 per significant mathematical expression
Minimum cost of $40.00

Negotiable rates for non-native-English-speaking authors, developmental editing, and additional services

Charlotte Byrnes
STM Manuscript Services
STMbyrnes@gmail.com

Free Editing Tools and Tips

Takeaways from this article: Use Capitalize My Title to determine exactly which characters to capitalize. Use my free chex_latex Perl script to find common goofs in your .tex and text (just copy your .docx text to a text file) files. Also try pasting your .tex into Microsoft Word to see what it turns up. Jump to the end of this post for more info. And if you want a great technical copy editor or typesetter (she did both for Real-Time Rendering 4th edition and copy editing for Ray Tracing Gems), hire Charlotte Byrnes. No, really, do it; she copy edits papers, too.

Yesterday we finished putting together Ray Tracing Gems, turning the files over to our publisher. Tomas and I agree that we’re done with making books for a decade or so, at least. “Editing, it’ll be easier than writing,” said the naive editors. And, yes, we changed all “naïve” with the umlaut (a form that seems to be popular with authors from Germany) to “naive.”

There’s a lot we learned about process – basically, think through and establish good processes early on, for everything – but I want to focus on grammar and style-nerd stuff, since it’s SIGGRAPH paper-writing season. What follows are my fairly-well-informed-but-I-could-be-convinced-otherwise opinions. I think of myself as maybe a B+ English student, on a good day.

Gender-neutral: Instead of he/she, or alternating “he” and “she” in a passage, people can use “they” for the singular form. This concept dates back to 1375.

“Data is” is fine, according to The Guardian, which also notes that The Wall Street Journal is coming around. To quote: “It’s like agenda, a Latin plural that is now almost universally used as a singular. Technically the singular is datum/agendum, but we feel it sounds increasingly hyper-correct, old-fashioned and pompous to say ‘the data are’.”

Please spell out any acronym you use the first time you use it, e.g., “the bounding volume hierarchy (BVH) for the scene.”

Use the ACM Digital Library (DL) for references in your .bib files. On an article’s page on the upper right is “Export Formats: bibtex” – click it. Even then, the DL is sometimes not quite correct, e.g., “Proceedings of High Performance Graphics” should have a hyphen: “Proceedings of High-Performance Graphics,” as that’s truly the conference name. But they’re at least close. Here are some variants I spotted from authors:

High-Performance Graphics (nice and short, but a little hard to tell if this is a book or something else when reading the bibliographic entry in the paper)
High Performance Graphics
Proceedings of High Performance Graphics (ACM DL form, needs a hyphen)
Proceedings of the Conference on High Performance Graphics
High Performance Graphics 2009
Proceedings of the 5th High-Performance Graphics Conference
Proceedings of the ACM SIGGRAPH Symposium on High-Performance Graphics
Proceedings of the Fourth ACM SIGGRAPH / Eurographics Conference on High-Performance Graphics (wins for longest)

The DL bibtex entry sometimes puts the article title into lowercase when it is actually presented properly capitalized. I’m for using the capitalized version the authors intended. BTW, the Google Scholar Button is handy for finding references.

Hyphens are tricky. For a word where you could hyphenate it or leave out the hyphen, e.g., “non-planar”/”nonplanar,” we had a few rules of thumb:

  • Check Merriam-Webster. For example, “nonplanar” is an accepted spelling, so we left the hyphen out. Similarly, “nearfield,” “dataset,” and “retroreflection” are in the dictionary. You still must poke around, e.g., “retroreflect” is not.
  • If it’s not in the dictionary, consider the literature. So, “microfacet” and “framebuffer” are OK, since they are commonly used in computer graphics.
  • Otherwise, use a hyphen, e.g., “re-render,” “micro-detail.”

For phrases we used these hyphenation rules. For example, “world-space coordinates” vs. “world space” vs. “coordinates in world space” are all proper. Also, it’s never “Monte-Carlo” – you wouldn’t say “faster than a New-York minute.” Oh, and it’s never “physically-based,” as the rules note.

Our one exception to these sorts of rules was that we never hyphenated “ray-tracing” in Ray Tracing Gems. For starters, we’d have to considering changing the title to Ray-Tracing Gems, which takes emphasis off of ray tracing (“Hey, this book’s a rip-off, I thought it was about properly rendering gemstones”). It’s also the more popular adjective form in previous publications (though I found only a few articles to back up this claim). To confuse things a bit, Microsoft calls their DXR API “DirectX Raytracing” – one word for “ray tracing.” We use it this way whenever we spell it out for DXR. We also resisted using “any-hit shader” and “closest-hit shader,” as Microsoft does not hyphenate, no matter how much I wish they did. This quotidian stuff takes up a surprising amount of time, but luckily I’ve folded the various common hyphenation tests into chex_latex. If you disagree, it’s easy to change or remove the tests from the script (even if you don’t know Perl, you do know how to use the “delete” key).

I like to avoid too many uses of “this” without a noun after them. A high-school teacher of mine never allowed a “this” without a noun after each one, but I think that’s overkill. Still, it’s good to think about: If it’s not obvious what the noun should be after the “this”, then add it. I’ve also found that “This” at the start of a sentence can often be changed to “Doing so,” e.g., “We add up the probabilities. This simplifies the subsequent…” to “We add up the probabilities. Doing so simplifies the subsequent…” The second sentence is a bit more active and engaging.

Avoid “very” when you can, as it’s either fluff or is a lazy way to increase the impact. Mark Twain didn’t say (but it’s still a great quote): “substitute ‘damn’ every time you’re inclined to write ‘very’; your editor will delete it and the writing will be just as it should be.” There are lists out there, such as this one, giving synonyms, e.g., “massive” for “very big.” That said, I haven’t yet found good replacements for “very close” and “very time consuming.” Another word in this category of fluff is “really.” Please never use that in formal writing; even “very” is better.

At the start of a sentence, “In order to” can usually be replaced by “To.” Shorter is more concise and sounds more authoritative.

The word “only” can often get moved to the right. Placement matters: “I only cook hot dogs but don’t eat them” and “I cook only hot dogs, not hamburgers” have “only” modifying the proper words. So “We only render the opaque objects” is less precise than “We render only the opaque objects.” Both work – we’re used to mentally shoving the “only” to be with the objects in the first version – but why not say it right to begin with?

The abbreviations “i.e.” and “e.g.” always have commas after them in the U.S., e.g., such as what I just did in this sentence. Same thing with the phrases “for example” and “that is” – commas after. Also, this is my own hypersensitivity, but please reword to avoid “et al.’s” – it’s fine in some lawless parts of the world, but you drive a stake in my Latin teacher’s heart when you mix Latin and English in this way.

In the U.S., the Chicago Manual of Style says “toward” is preferred in the U.S. over “towards,” “forward” over “forwards,” and so on. I’ve also seen this in spell checkers, with “towards” being flagged. Most sites say either is fine for the U.S., though the English prefer “towards.” I decided on the “remove the ‘s'” versions for this U.S. book (and “color” not “colour,” etc.) in order to be consistent throughout and to avoid spell-checker catches.

OK, that’s way more than enough, and I haven’t started in on “that” vs. “which” or how semicolons get misused…

If I could change just one thing in U.S. English, it would be punctuation placement with quotes and double-quotes. In the U.S. we put commas and periods inside the double-quotes, “like this.” In the U.K. it’s “like this”. Note that all other punctuation – colon, question mark, semicolon – for the U.S. is outside the quotes, unless you’re quoting a phrase with these in it, e.g., “Quis custodiet ipsos custodes?” I wish we’d all switch to the U.K. model, it’s more consistent and puts my computer science heart at ease. Oh well. That said, it’s legal to keep the punctuation out if you’re trying to explain syntax itself, e.g., “To declare floating-point numbers you can use ‘double’ or ‘float’.”

To conclude, I’ll explain more what I said at the start, about free tools you should consider using:

  • Use Capitalize My Title to determine exactly which characters to capitalize in titles and section headers. There seems to be a tendency in Europe to not capitalize the hyphenated word. For example, the often-cited (and good!) paper “An Inexpensive BRDF Model for Physically-based Rendering” has a lowercase “b” in “based” (there also should not be a hyphen). It’s also visible in such things as the First-tier Tribunal. For U.S. publications the rule is to capitalize the hyphenated word, unless the word would normally be lowercase, e.g., “Texture Level-of-Detail Strategies for Real-Time Ray Tracing.”
  • Microsoft Word or other spell and style checker is worth your while. Copy the contents of your PDF or .tex file, paste into Word, and see what it turns up. If you do this simple trick as a reviewer, you look like some copy-editing genius by catching obscure errors. Beat reviewers to the punch by doing this to your own submissions. I did so with this article and it turned up six suggestions, four of which I used.
  • Give chex_latex.pl a run on your .tex or text file (e.g., copy your text from your Word document to a .txt file). Yes, you must install Perl, how old-school, but ten minutes of messing with this program will likely turn up a few things in your paper that are wrong or at least worth contemplating changing. It has hundreds of little tests, but my favorite is the one I stole from here, that finds accidentally doubled words, e.g., “the the” or “a a” – these occur surprisingly often. Perl scripts are trivial to edit, so if you don’t like a test, just delete or modify it. Or you can put “% chex_latex” at the end of any line to have the tool ignore it completely. I ran this tool on this article and it found two little goofs.
  • For longer works I find an interactive spell checker to lead to madness, as you hit author after author after author when you check, along with variable and procedure names. I finally wrote a tiny back-end program, aspell_sorter.pl, for the standalone command-line spell checker “aspell.” Now with three commands I concatenate all .tex files together, spell-check them all, and then sort by word and get a count for each “misspell.” For example, on my latest run, in 23,083 lines of .tex in Ray Tracing Gems, “aspell” found 7744 questionable terms. That’s like one spell check per 3 lines – insane. The “aspell_sorter” turns this into a list of 1599 questionable terms – almost 5x less. You can also set “$spellcount = 1;” to show only unique misspellings, things “misspelled” only once. Doing so will miss consistently misspelled words, but the list to skim over is now down to just 696 entries – a more than 11x culling of potential problems. Of these, I found three true misspellings: ROUGNESS, vextex, and identifer (and these were found after three editors had already read each of the chapters and I had similarly spell checked most of the text a month earlier). I had to wade through a lot of false positives, 693 of them, but it’s better than wading through 7741.
  • I’ve heard good things about Grammarly and Hemingway, but haven’t gotten into them myself.
  • For citation managers, Zotero and Mendeley get a lot of thumbs up, though I haven’t used them, since we use our own goofy .bib format.

Bonus info: it’s not about grammar, more about English in general, but I’m enjoying Bill Bryson’s The Mother Tongue – it’s a great bathroom read. The amount of useless knowledge per page is impressive. For example, I now know where the “r” sound in the word “colonel” comes from.