I don't really do the social media thing very much anymore, and I don't anticipate posting much here in the foreseeable future.
You can keep in touch at: https://t.co/369GMW8VTa
Or, as always, what I'm up to on my website: https://t.co/E3FMUnN69B
@pythno@cem_yuksel The BRDF is the ratio of reflected radiance to incident irradiance. The cosine term in Wikipedia's (correct) definition converts incoming radiance into irradiance. Notice it's in the denominator! When you multiply with the 'geometry term' in the Rendering Eqn, it will cancel. HTH
I made holographic chocolate!
Way easier than I thought - and it’s 100% pure bittersweet, no coatings. When you catch the light at the right angle, it’s mesmerizing.
Spreading the raytracing religion!
👁️ ☀️
↘️ ↗️
🫖
(My square at the Forest Grove sidewalk chalk art festival last weekend. Yes; I am *absolutely* dorky enough to make over-the-top pathtracing propaganda.)
@RichardSteward_@cem_yuksel Good question—and yes, you are correct: Phong wasn't reciprocal to begin with and Modified Phong's reciprocity breaks by being scaled.
To be both energy-normalizing and reciprocal, the BRDFs' shapes would need to be altered instead (producing new BRDFs, which wasn't our goal).
One thing that has always bothered me is that the Phong BRDFs don't maintain energy—so I wrote a paper (with @cem_yuksel) about how to fix them!
Please enjoy this comparison from our paper, and check out my lightning summary video at the project homepage:
https://t.co/YJDESNqIBZ
Yes, I know that the Phong BRDFs are outdated, so if you're in production graphics, you probably don't care.
Here's the thing, though—students care. Graphics newbies care. People who like closure care. You want an intuitive and easy glossy BRDF? You can't do better than Phong.
@mertkirimgeri @furkanxdgs4 NVIDIA's Variable-Rate Shading (VRS) is also an undersampling alg, yes. VRS works at a coarser granularity than DACS, resulting in worse quality (we compare extensively in the paper). However, VRS has the advantage of being in HW. So, our paper tells how to make HW for DACS, too.
Our HPG 2020 paper/talk, "Efficient Adaptive Deferred Shading with Hardware Scatter Tiles" is up:
https://t.co/Vawi32h2c9
We give tips to vendors about implementing our HPG '18 paper "Deferred Adaptive Compute Shading" in hardware. Core to the idea is interlocked, on-chip tiles.
@Mimus_ It seems I misunderstood the paper, but still: these methods are mathematically equivalent. Either way, the math to make it unbiased is just simple engineering (and here, note that branch choice should importance-sample on [throughput]*[photopic efficiency] over all N λs anyway).
Preprint + supplemental is up for our @EGSympRendering paper
"Spectral Primary Decomposition for Rendering with sRGB Reflectance":
https://t.co/cznscvB6Nw
Spectral reflectance for any sRGB triple without any colorimetric error!
(E.g. for using RGB assets in spectral renderers.)
@Mimus_ The hero λ is picked from the 1st bucket, and the next 3 are implicitly spaced by `LAMBDA_STEP`s above it (and so are in the other 3 buckets). If I understand you correctly, your suggestion produces the same thing, except for a permutation which you'd then need to keep track of?
@ForOperators Not sure I know which problem you mean? For C/C++ x86[-64], intrinsics give optimal precision w/ high perf. Newton–Raphson is indeed easy to code up but the intrinsics or stdlib will always be better. Though, in your head, N–R is best & gives 2 or 3 sigfigs surprisingly easily.
@assertpub_ @abcmatt Ach; unfortunately, you've got the wrong Ian Mallett! While I am also a researcher in Computer Science, I work in Computer Graphics on rendering algorithms.
You're looking for Ian Mallett at the Australian National University, who appears to keep a lower-profile.
@MedNaassi The best (only?) way to learn raytracing is to try coding one up yourself, learning along the way.
I recommend @Peter_shirley 's free "Ray Tracing in One Weekend" e-book series, which will walk you through creating a decent raytracer—starting, as it happens, with spheres.
@zalbard The following are all differences AFAICT:
Ours is a theoretical note on spectral bases, but trivial to impl. Has negligible compute, no preprocess, exactly 0 (save FP) error, & no increase to tex mem. But spectra not very smooth, sRGB only, & runtime mem cost (3 const spectra).
@anderslanglands Yep. Load vec3 from a const array, dot, and . . . that's it. Array is just the three spectra, interleaved.
In-practice, though, use hero-wavelength sampling! On GPU/SSE/AVX, arranging the data differently, three loads, a mul, and two madds gives you four/four/eight wavelengths!
One thing I absolutely do not want to get lost:
If you've got basic raytracing knowledge and want to learn spectral rendering, check out our sample renderer! It's intended for teaching purposes—simple, commented to death, and algorithmically sensible.
https://t.co/NDfrBjW8En
People tried this basis approach before, obviously. But they got the math wrong. Wherefore literally dozens of authors have claimed its impossibility over 20+ years—just about as long as sRGB has even existed.
Therefore we also thoroughly review How Do You Even Colorimetry, Bruh