This shows you the differences between two versions of the page.
| 
    vdvac:lab2 [2024/03/25 14:44] anca.morar [Cerinte laborator]  | 
    
    vdvac:lab2 [2024/03/25 15:41] (current) anca.morar [Etapa 2]  | 
    ||
|---|---|---|---|
| Line 7: | Line 7: | ||
| **Figura 1** | **Figura 1** | ||
| - | {{:vdvac:lab2_fig1.png?480|}} | + | {{:vdvac:lab2_fig1.png?550|}} | 
| ===== Concepte teoretice ===== | ===== Concepte teoretice ===== | ||
| Line 47: | Line 47: | ||
| ==== Etapa 1 ==== | ==== Etapa 1 ==== | ||
| - | **Determinarea punctelor de ieșire din volum ale razelor** | + | **Determinarea punctelor de ieșire ale razelor din volum** | 
| * Se desenează într-un framebuffer (nu în cel default)<code>frameBuffer->Bind(); </code> | * Se desenează într-un framebuffer (nu în cel default)<code>frameBuffer->Bind(); </code> | ||
| * Se rasterizează fețele din spate ale cubului încadrator<code>glEnable(GL_CULL_FACE); | * Se rasterizează fețele din spate ale cubului încadrator<code>glEnable(GL_CULL_FACE); | ||
| Line 56: | Line 56: | ||
| ==== Etapa 2 ==== | ==== Etapa 2 ==== | ||
| - | **Determinarea punctelor de intrare în volum ale razelor** | + | **Determinarea punctelor de intrare ale razelor în volum ** | 
| * Se desenează în buffer-ul default<code>FrameBuffer::BindDefault();</code> | * Se desenează în buffer-ul default<code>FrameBuffer::BindDefault();</code> | ||
| Line 91: | Line 91: | ||
| * Se verifică dacă raza curentă a ieșit din volum sau dacă opacitatea acumulată a ajuns la 1 | * Se verifică dacă raza curentă a ieșit din volum sau dacă opacitatea acumulată a ajuns la 1 | ||
| - | ==== Cerinte laborator ==== | + | ==== Cerințe laborator ==== | 
| - Să se completeze valoarea variabilei ''frag_color'' pentru a fi transmisă mai departe către fragment shader (în ''VertexShader_backface.glsl'') | - Să se completeze valoarea variabilei ''frag_color'' pentru a fi transmisă mai departe către fragment shader (în ''VertexShader_backface.glsl'') | ||
| - Să se calculeze corect culoarea ''out_color'' ca să se afișeze fețele spate ale volumului încadrator (în ''FragmentShader_backface.glsl'') | - Să se calculeze corect culoarea ''out_color'' ca să se afișeze fețele spate ale volumului încadrator (în ''FragmentShader_backface.glsl'') | ||
| Line 101: | Line 101: | ||
| - Să se calculeze valoarea scalară a eșantionului curent (în funcție de textura ''VolumeTex'' și de coordonata de textură ''voxelCoord'') | - Să se calculeze valoarea scalară a eșantionului curent (în funcție de textura ''VolumeTex'' și de coordonata de textură ''voxelCoord'') | ||
| - Să se calculeze culoarea eșantionului curent (în funcție de textura ''TransferFunc'' și de coordonata de textură dată de valoarea scalară curentă) | - Să se calculeze culoarea eșantionului curent (în funcție de textura ''TransferFunc'' și de coordonata de textură dată de valoarea scalară curentă) | ||
| - | - Să se actualizeze poziția eșantionului curent | + | - Să se actualizeze poziția eșantionului  | 
| - Să se actualizeze lungimea parcursă pe rază | - Să se actualizeze lungimea parcursă pe rază | ||
| + | |||
| + | |||
| + | ==== Demo ==== | ||
| + | |||
| + | <html> | ||
| + | <p style="text-align:center;margin:auto;"> | ||
| + | <iframe width="430" height="250" src="https://www.youtube.com/embed/Bl_fSKLk-Cs" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> | ||
| + | </p> | ||
| + | </html> | ||
| + | |||