Interactive Graphics 25 - Volume Rendering

  Рет қаралды 20,842

Cem Yuksel

Cem Yuksel

Күн бұрын

Interactive Computer Graphics.
School of Computing, University of Utah.
Full Playlist: • Interactive Computer G...
Course website: graphics.cs.utah.edu/courses/...
0:00:00 Introduction
0:00:17 Applications
0:02:58 Volume Rendering for Visualization
0:28:49 Volume Rendering for Graphics
1:02:05 Volumetric Shadows
1:08:22 NanoVDB
1:09:42 Conclusion

Пікірлер: 30
@misterstudentloan2615
@misterstudentloan2615 Жыл бұрын
Great video, thanks a ton, had a project in my company that needs to do some volume rendering of some CT scan data in Unity. Working on it right now , might take a month for me, but your video is the foundational for me
@xFabi99
@xFabi99 Жыл бұрын
Almost the same^^ though I will try to do it with C++!
@elronnd_9515
@elronnd_9515 Жыл бұрын
Is it uncommon to have volumetric data where the samples have more than one dimension? What does the transfer function usually look like in those cases?
@mikedemchenko3513
@mikedemchenko3513 3 ай бұрын
Writing on 19:14 so it may be discussed later - another way would be to extend last approach be subdividing plane into multiple triangles and discarding their rendering at compute stage (or mesh shader) if some triangle is outside data volume. This will result in an approximation of clipped plane and minimal overhead in fragment invocations (especially if tessellation can be used.
@MaximeChamberland
@MaximeChamberland Жыл бұрын
Amazing content. Any way we can acknowledge / re-use your slides somehow?
@vintagemars4614
@vintagemars4614 Жыл бұрын
19:00 I think we can render the cube first, then render these slices with some depth tests(greater than), which will discard those fragments in front of the cube plane. Is that doable?
@vinamarora7049
@vinamarora7049 2 жыл бұрын
I thought you’re tom scott ngl :p
@PixelPulse168
@PixelPulse168 Жыл бұрын
Thank you Prof. Yuksel. How was the explosion and cloud volumetric data generated?
@cem_yuksel
@cem_yuksel Жыл бұрын
The explosion is generated using Houdini. I'm not sure about the could data.
@jsierra88
@jsierra88 Жыл бұрын
@@cem_yuksel So if It's Houndini I bet the data structure is OpenVDB.
@DasAntiNaziBroetchen
@DasAntiNaziBroetchen Жыл бұрын
18:00 I am confused. What about ray marching a 3D texture? No overdraw and much simpler.
@jsierra88
@jsierra88 Жыл бұрын
I see rasterization more related to triangles cause their flat nature as I see ray tracing more related to volumetric geometries using implicit equations or even explicit voxel grids, octrees partitioning, etc... What do you think?
@cem_yuksel
@cem_yuksel Жыл бұрын
Ray tracing is more general than rasterization.
@irtberry
@irtberry 6 ай бұрын
Are you planning to write any books on this?
@XxSajraxX
@XxSajraxX Жыл бұрын
What I don't really get is how to apply local illumination to a volume that is rendered using a CT-Volume and a transfer function. E.g. the tooth shown in 24:17 has some shiny reflection at the root canal. So there must be a light source that interacts with the surface. But how can this be done without normals? We just have voxels, don't we?
@DasAntiNaziBroetchen
@DasAntiNaziBroetchen Жыл бұрын
I may not be able to answer your question completely, but you can calculate normals from density samples. It is very easy. You take 6 samples in a cross pattern and subtract each pair. Search for "gradient normals".
@XxSajraxX
@XxSajraxX Жыл бұрын
@@DasAntiNaziBroetchen danke, ja wahrscheinlich würde man die Zentraldifferenz verwenden. Ich weiß nicht wie sinnvoll Sobel wäre, denn der glättet ja vorher.
@lemonjumpsofficial
@lemonjumpsofficial 10 ай бұрын
ngl, I'd either, just draw the box, use the normal of the visible faces to orient the data, and just go through the data in rays, where you exit on first "solid" voxel. or as a second approach I'd do the same with a screen space shader, if there's multiple volumes.
@DiThi
@DiThi 2 жыл бұрын
IIRC being able to discard a fragment before reading any texture can save the GPU some processing power which is not saved just by returning alpha 0.
@nielsbishere
@nielsbishere Жыл бұрын
Depends; if any of the pixels in the quad's lane still go through then it will still have to wait for that quad to finish. So you'd only gain perf if the entire quad is masked out. Though you're saving some perf by not having as much data divergence
@DiThi
@DiThi Жыл бұрын
@@nielsbishere Correct, but when drawing one big polygon, most of the time if a pixel is completely transparent, the other 3 of the quad is also transparent. So it's better to draw smaller polygons where data is expected. Or when one detects a pixel is out of bounds, to discard it without reading a texture.
@nielsbishere
@nielsbishere Жыл бұрын
@@DiThi you mean like cut out alpha masked stuff in the big lines and then cut off the rest in the pixel shader right? Because making polygons too small will waste helper lanes too
@DiThi
@DiThi Жыл бұрын
@@nielsbishere Yeah there's a balance between wasted transparent polygon drawing and too small polygons. The specifics depend on the hardware, but in most cases just clipping the polygon to the bounding box of what it's going to be drawn is generally enough. For some architectures it's worth to add many more polygons. For example for the classic iPhone and Samsung Galaxies of a decade ago, the PowerVR architecture was way faster drawing alpha blended polygons if we made two separate meshes: the inside part as opaque and the border around it as alpha blended. The tiled architecture was way faster drawing many polygons (and only a small fraction of pixels on screen alpha blended) than drawing one plane per image all alpha blended. Like, orders of magnitude faster!
@DasAntiNaziBroetchen
@DasAntiNaziBroetchen Жыл бұрын
@@DiThi I'd like to point out that mobile hardware behaves very differently from PC hardware.
@unveil7762
@unveil7762 8 ай бұрын
And yessss finally a nice of 3d textures that is not just hosting texture for instances… problem is how can i have a cohrent blur in a 3d texture…. Find a solution find a problem!!! ❤
@dukeshovon9447
@dukeshovon9447 2 жыл бұрын
surprised that your video is really picking up
@DasAntiNaziBroetchen
@DasAntiNaziBroetchen Жыл бұрын
Why surprised?
@adityamwagh
@adityamwagh 17 күн бұрын
This is probably because of NeRF (Neural Radiance Fields) paper.
@stefanbanev
@stefanbanev 6 ай бұрын
It's probably for kids, very basic introduction and totally useless for practical volume rendering skill useful to render volumetric data like CT MRI etc...this dude apparently is clueless about this...
Interactive Graphics 26 - GPU Ray Tracing
1:10:00
Cem Yuksel
Рет қаралды 10 М.
Eccentric clown jack #short #angel #clown
00:33
Super Beauty team
Рет қаралды 26 МЛН
КАКОЙ ВАШ ЛЮБИМЫЙ ЦВЕТ?😍 #game #shorts
00:17
Interactive Graphics 20 - Compute & Mesh Shaders
59:58
Cem Yuksel
Рет қаралды 14 М.
Physics and Math of Shading | SIGGRAPH Courses
38:35
ACMSIGGRAPH
Рет қаралды 96 М.
Interactive Graphics 22 - Global Illumination
1:10:00
Cem Yuksel
Рет қаралды 11 М.
BEST WAY to understand graphics and rendering code
34:46
The Cherno
Рет қаралды 34 М.
How Ray Tracing (Modern CGI) Works And How To Do It 600x Faster
32:06
Josh's Channel
Рет қаралды 556 М.
I made a better Ray-Tracing engine
17:38
NamePointer
Рет қаралды 243 М.
08 We Were So Lucky   Alan Kay
33:47
Kahlert School of Computing, University of Utah
Рет қаралды 2,4 М.
How Ray Tracing Works - Computerphile
20:23
Computerphile
Рет қаралды 72 М.
Pratik Cat6 kablo soyma
0:15
Elektrik-Elektronik
Рет қаралды 8 МЛН
Куда пропал 3D Touch? #apple #iphone
0:51
Не шарю!
Рет қаралды 942 М.
Теперь это его телефон
0:21
Хорошие Новости
Рет қаралды 1,8 МЛН
The power button can never be pressed!!
0:57
Maker Y
Рет қаралды 55 МЛН