Meta tags:
author= Nathan Reed;
description= Pixels and polygons and shaders, oh my!;
keywords= graphics,coding,programming,shader,rendering,math,directx,opengl,c++,gpu,pbr,brdf,vector,matrix;
Headings (most frequently used words):
in, with, reading, veach, thesis, 20, ranges, python, like, enumerate, 17, using, nathan, custom, toolchain, compatible, studio, msbuild, mesh, shader, possibilities, subscribe, recent, posts, visual, making, container, submodule, part, texture, gathers, and, coordinate, precision, git, partial, slope, own, space, brdf, theory, hash, functions, for, gpu, rendering, reed, your, categories,
Text of the page (most frequently used words):
the (53), and (31), for (21), more (18), you (14), #read (14), with (13), #thesis (12), but (12), #this (12), #graphics (10), #comments (10), gpu (10), #that (10), #veach (8), are (8), about (8), #ranges (7), space (7), slope (7), rendering (7), what (7), coding (7), like (7), have (7), texture (6), submodule (6), some (6), math (6), was (6), own (6), #studio (5), going (5), can (5), been (5), visual (5), shaders (5), your (5), git (5), all (5), #theory (5), functions (5), has (4), want (4), project (4), partial (4), python (4), enumerate (4), thing (4), reading (4), when (4), work (4), their (4), also (4), brdf (4), hash (4), using (4), not (4), time (4), used (4), there (4), 2021 (4), over (4), custom (4), posts (4), ideas (3), container (3), both (3), make (3), other (3), thought (3), how (3), monte (3), adding (3), such (3), tracing (3), which (3), messages (3), 2018 (3), carlo (3), shader (3), error (3), post (3), gathers (3), would (3), submodules (3), many (3), years (3), need (3), mesh (3), these (3), filtering (3), new (3), them (3), back (3), only (3), down (3), reed (3), lot (3), ago (3), interesting (3), nathan (3), built (3), although (3), based (2), from (2), range (2), path (2), implement (2), things (2), use (2), may (2), november (2), available (2), coordinates (2), before (2), sparse (2), loops (2), didn (2), let (2), checkout (2), our (2), appeared (2), see (2), much (2), than (2), article (2), isn (2), few (2), out (2), since (2), 2023 (2), code (2), number (2), algorithms (2), features (2), great (2), fully (2), texels (2), readable (2), making (2), logic (2), level (2), where (2), beyond (2), index (2), another (2), listofthings (2), function (2), very (2), today (2), control (2), paper (2), 2022 (2), containers (2), library (2), here (2), better (2), provides (2), bilinear (2), really (2), blog (2), last (2), multiple (2), importance (2), sampling (2), toolchain (2), support (2), eric (2), called (2), turing (2), september (2), msbuild (2), its (2), hardware (2), feature (2), one (2), coordinate (2), precision (2), part (2), quite (2), tool (2), recently (2), get (2), made (2), writing (2), why (2), key (2), sometimes (2), dxc (2), close (2), right (2), theoretical, were, continuing, got, image, resulting, know, artifact, edges, neighborhood, shadows, strange, then, noticed, surprise, areas, camera, surface, first, lit, went, foundations, tackling, chapters, shadowed, dealing, grid, soft, covered, delineating, half, lines, stipply, flickery, retrieve, history, github, february, save, clones, blobless, installment, setting, fill, aimed, hole, doctoral, patterns, aren, they, far, repositories, top, happen, july, talks, stuff, tuck, file, view, burden, including, famous, files, handful, performing, without, entire, storing, downloading, bear, allowing, further, ado, ever, clone, gitmodules, cloned, applied, automatically, version, managed, huh, unit, cool, inspired, probability, calculus, algebra, clarified, mathematical, linear, don, too, behind, formal, bidirectional, analysis, incisive, presented, clearly, found, textbook, pages, 400, links, understand, halfway, bottom, twenty, probably, studied, heard, his, pbr, site, stanford, together, published, through, 1997, hugely, influential, introduced, hop, share, techniques, bits, already, pdf, deal, calculate, pixel, trying, problem, across, came, frac, comprehensive, weights, review, shadow, physically, everything, emulating, texel, figure, just, selection, scaled, december, map, scroll, expositions, source, original, gone, later, never, places, research, still, central, seen, wanted, production, full, classic, sit, decided, renderers, january, usual, filters, experiment, introduction, 2007, gentler, workflow, iterating, analogue, fxc, compiler, gen, next, via, hlsl, days, rest, same, give, usually, compile, language, integrated, natively, parity, won, uses, system, build, directly, plenty, scripting, lets, item, loop, iteration, each, access, list, object, iterate, handy, situations, print, etc, filenames, output, generating, reports, progress, structure, data, looking, underlying, invokable, feedly, enthusiastic, agog, community, programming, weeks, couple, dropped, details, concept, subscribe, rss, taking, recent, categories, physics, candy, eye, licensed, discussions, place, line, includes, command, any, possibilities, ray, accelerated, developments, several, intriguing, look, headlining, twitter, architecture, latest, announced, nvidia, able, might, excited, programmers, task, counterparts, elsewhere, discuss, write, excellent, findings, light, former, update, olano, marc, jarzynski, mark, jcgt, topic, months, popular, developed, prngs, eight, generation, pseudorandom, wrote, 2013, compatible, march, concepts, requires, somewhat, papers, department, vectors, transform, useful, exactly, obvious, explained, rarely, intuition, meaning, however, polar, ordinary, converted, being, done, operations, defined, shadowing, masking, ndfs, components, mention, often, clauses, lagging, process, interfaces, sequences, operating, abstraction, composable, nicer, addition, performance, interoperate, possible, little, customized, most, layouts, memory, reasons, variety, ones, stl, classes, set, codebases, class, compatibility, objects, basic, sadly, two, msvc, providing, precise, junk, sfinae, necessity, remove, syntax, template, extensions, related, wraps, closely, learning, enjoying, lately, spare, watch, tutorial, pair, end, begin, iterator, talk,
Text of the page (random words):
nathan reed s coding blog nathan reed blog stuff i ve made talks about me all posts reading veach s thesis part 2 february 25 2023 graphics math comments in this post we re continuing to read eric veach s doctoral thesis in our last installment we covered the first half of the thesis dealing with theoretical foundations for monte carlo rendering this time we re tackling chapters 8 9 including one of the key algorithms this thesis is famous for multiple importance sampling without further ado let s tuck in as before this isn t going to be a comprehensive review of everything in the thesis it s just a selection of things that made me go oh that s cool or huh i didn t know that read more reading veach s thesis december 3 2022 graphics math comments if you ve studied path tracing or physically based rendering in the last twenty years you ve probably heard of eric veach his ph d thesis published in 1997 has been hugely influential in monte carlo rendering veach introduced key techniques like multiple importance sampling and bidirectional path tracing and clarified a lot of the mathematical theory behind monte carlo rendering these ideas not only inspired a great deal of later research but are still used in production renderers today recently i decided to sit down and read this classic thesis in full although i ve seen expositions of the central ideas in other places such as pbr i d never gone back to the original source the thesis is available from stanford s site scroll down to the very bottom for pdf links it s over 400 pages a textbook in its own right but i ve found it very readable with clearly presented ideas and incisive analysis there s a lot of formal math too but you don t really need more than linear algebra calculus and some probability theory to understand it i m only about halfway through but there s already been some really interesting bits that i d like to share so hop in and let s read veach s thesis together read more texture gathers and coordinate precision january 15 2022 graphics gpu comments a few years ago i came across an interesting problem i was trying to implement some custom texture filtering logic in a pixel shader it was for a shadow map and i wanted to experiment with filters beyond the usual hardware bilinear i went about it by using texture gathers to retrieve a neighborhood of texels then performing my own filtering math in the shader i used frac on the scaled texture coordinates to figure out where in the texel i was emulating the logic the gpu texture unit would have used to calculate weights for bilinear filtering to my surprise i noticed a strange artifact in the resulting image when i got the camera close to a surface a grid of flickery stipply lines appeared delineating the texels in the soft edges of the shadows but not in areas that were fully shadowed or fully lit what was going on read more git partial submodule september 4 2021 comments view on github have you ever thought about adding a submodule to your git project but you didn t want to bear the burden of downloading and storing the submodule s entire history or you only need a handful of files out of the submodule git provides partial clone and sparse checkout features that can make this happen for top level repositories but so far they aren t available for submodules that s a hole i aimed to fill with this project git partial submodule is a tool for setting up submodules with blobless clones it can also save sparse checkout patterns in your gitmodules file allowing them to be managed by version control and automatically applied when the submodules are cloned read more slope space in brdf theory july 16 2021 graphics math comments when you read brdf theory papers you ll often see mention of slope space sometimes components of the brdf such as ndfs or masking shadowing functions are defined in slope space or operations are done in slope space before being converted back to ordinary vectors or polar coordinates however the meaning and intuition of slope space is rarely explained since it may not be obvious exactly what slope space is why it is useful or how to transform things to and from it i thought i would write down a gentler introduction to it read more hash functions for gpu rendering may 21 2021 coding gpu graphics comments back in 2013 i wrote a somewhat popular article about pseudorandom number generation on the gpu in the eight years since a number of new prngs and hash functions have been developed and a few months ago an excellent paper on the topic appeared in jcgt hash functions for gpu rendering by mark jarzynski and marc olano i thought it was time to update my former post in light of this paper s findings read more making your own container compatible with c 20 ranges march 20 2021 coding comments with some of my spare time lately i ve been enjoying learning about some of the new features in c 20 concepts and the closely related requires clauses are two great extensions to template syntax that remove the necessity for all the sfinae junk we used to have to do making our code both more readable and more precise and providing much better error messages although msvc has sadly been lagging in the error messages department at the time of this writing another interesting c 20 feature is the addition of the ranges library also ranges algorithms which provides a nicer more composable abstraction for operating on containers and sequences of objects at the most basic level a range wraps an iterator begin end pair but there s much more to it than that this article isn t going to be a tutorial on ranges but here s a talk to watch if you want to see more of what it s all about what i m going to discuss today is the process of adding ranges compatibility to your own container class many of the c codebases we work in have their own set of container classes beyond the stl ones for a variety of reasons better performance more control over memory layouts more customized interfaces and so on with a little work it s possible to make your custom containers also function as ranges and interoperate with the c 20 ranges library here s how to do it read more python like enumerate in c 17 november 24 2018 coding comments python has a handy built in function called enumerate which lets you iterate over an object e g a list and have access to both the index and the item in each iteration you use it in a for loop like this for i thing in enumerate listofthings print the d th thing is s i thing iterating over listofthings directly would give you thing but not i and there are plenty of situations where you d want both looking up the index in another data structure progress reports error messages generating output filenames etc c range based for loops work a lot like python s for loops can we implement an analogue of python s enumerate in c we can read more using a custom toolchain in visual studio with msbuild november 20 2018 coding comments like many of you when i work on a graphics project i sometimes have a need to compile some shaders usually i m writing in c using visual studio and i d like to get my shaders built using the same workflow as the rest of my code visual studio these days has built in support for hlsl via fxc but what if we want to use the next gen dxc compiler this post is a how to for adding support for a custom toolchain such as dxc or any other command line invokable tool to a visual studio project by scripting msbuild the underlying build system visual studio uses we won t quite make it to parity with a natively integrated language but we re going to get as close as we can read more mesh shader possibilities september 29 2018 coding gpu graphics comments nvidia recently announced their latest gpu architecture called turing although its headlining feature is hardware accelerated ray tracing turing also includes several other developments that look quite intriguing in their own right one of these is the new concept of mesh shaders details of which dropped a couple weeks ago and the graphics programming community was agog with many enthusiastic discussions taking place on twitter and elsewhere so what are mesh shaders and their counterparts task shaders why are graphics programmers so excited about them and what might we be able to do with them read more all posts subscribe feedly rss recent posts reading veach s thesis part 2 reading veach s thesis texture gathers and coordinate precision git partial submodule slope space in brdf theory hash functions for gpu rendering all posts categories graphics 32 coding 23 math 21 gpu 15 physics 6 eye candy 4 2007 2023 by nathan reed licensed cc by 4 0
|