This shows you the differences between two versions of the page.
|
pgapi:laboratoare:04 [2025/09/29 18:21] andrei.lambru |
pgapi:laboratoare:04 [2025/09/30 14:29] (current) andrei.lambru |
||
|---|---|---|---|
| Line 14: | Line 14: | ||
| Un exemplu de suprafață translatată este: | Un exemplu de suprafață translatată este: | ||
| - | {{ :ppbg:laboratoare:translation-surface.png?600 |}} | + | {{ :ipg:laboratoare:translation-surface.png?600 |}} |
| ==== Suprafețe de rotație ==== | ==== Suprafețe de rotație ==== | ||
| Line 20: | Line 20: | ||
| O suprafață de rotație este o suprafață generată prin instanțierea unui obiect generator. Fiecare instanță a generatorului suferă o transformare de rotație. Aceasta poate fi definită prin instanțierea unui generator cu fiecare instanță rotită progresiv dupa o funcție. | O suprafață de rotație este o suprafață generată prin instanțierea unui obiect generator. Fiecare instanță a generatorului suferă o transformare de rotație. Aceasta poate fi definită prin instanțierea unui generator cu fiecare instanță rotită progresiv dupa o funcție. | ||
| - | {{ :ppbg:laboratoare:rotation-surface.png?600 |}} | + | {{ :ipg:laboratoare:rotation-surface.png?600 |}} |
| ===== Laborator ===== | ===== Laborator ===== | ||
| Line 109: | Line 109: | ||
| * Desenați o polinie, pe baza tipului de geometrie de ieșire ''line_strip'', prin emiterea mai multor vârfuri ale căror poziții se obțin prin eșantionarea curbei Bézier. | * Desenați o polinie, pe baza tipului de geometrie de ieșire ''line_strip'', prin emiterea mai multor vârfuri ale căror poziții se obțin prin eșantionarea curbei Bézier. | ||
| * Permiteți modificarea de la tastatură a numărului de vârfuri ce descriu polilinii. Acest număr trebuie să poată fi scăzut și crescut. | * Permiteți modificarea de la tastatură a numărului de vârfuri ce descriu polilinii. Acest număr trebuie să poată fi scăzut și crescut. | ||
| - | * După acest pas, rezultatul pe care ar trebui să îl obțineti este următorul: \\ {{ :ppbg:laboratoare:bezier-animation.gif?600 |}} | + | * După acest pas, rezultatul pe care ar trebui să îl obțineti este următorul: \\ {{ :ipg:laboratoare:bezier-animation.gif?600 |}} |
| - Modificați fisierul ''GeometryShader.glsl'' pentru a desena o suprafață de translație, pe baza curbei Bézier obținute anterior. | - Modificați fisierul ''GeometryShader.glsl'' pentru a desena o suprafață de translație, pe baza curbei Bézier obținute anterior. | ||
| * Desenați o bandă de triunghiuri, pe baza tipului de geometrie de ieșire ''triangle_strip'', prin emiterea mai multor vârfuri ale caror poziții se obțin prin eșantionarea a două curbe Bézier, alăturate. | * Desenați o bandă de triunghiuri, pe baza tipului de geometrie de ieșire ''triangle_strip'', prin emiterea mai multor vârfuri ale caror poziții se obțin prin eșantionarea a două curbe Bézier, alăturate. | ||
| * Utilizați atributul de intrare ''instance'' pentru a translata banda desenata pe baza numarului de ordine al instanței desenate. | * Utilizați atributul de intrare ''instance'' pentru a translata banda desenata pe baza numarului de ordine al instanței desenate. | ||
| * Permiteți modificarea de la tastatură a numărului de benzi desenate. Acest număr trebuie să poată fi scăzut și crescut. | * Permiteți modificarea de la tastatură a numărului de benzi desenate. Acest număr trebuie să poată fi scăzut și crescut. | ||
| - | * După acest pas, rezultatul pe care ar trebui să îl obțineti este următorul: \\ {{ :ppbg:laboratoare:translation-surface-animation.gif?600 |}} | + | * După acest pas, rezultatul pe care ar trebui să îl obțineti este următorul: \\ {{ :ipg:laboratoare:translation-surface-animation.gif?600 |}} |
| - Modificați fișierul ''GeometryShader.glsl'' pentru a desena o suprafață de rotație, pe baza curbei Bézier obținute anterior. | - Modificați fișierul ''GeometryShader.glsl'' pentru a desena o suprafață de rotație, pe baza curbei Bézier obținute anterior. | ||
| * Desenați o bandă de triunghiuri, pe baza tipului de geometrie de ieșire ''triangle_strip'', prin emiterea mai multor vârfuri ale căror poziții se obțin prin eșantionarea a două curbe Bézier, alăturate. | * Desenați o bandă de triunghiuri, pe baza tipului de geometrie de ieșire ''triangle_strip'', prin emiterea mai multor vârfuri ale căror poziții se obțin prin eșantionarea a două curbe Bézier, alăturate. | ||
| Line 120: | Line 120: | ||
| * Permiteți modificarea de la tastatură a numărului de benzi desenate. Acest număr trebuie să poată fi scăzut și crescut. | * Permiteți modificarea de la tastatură a numărului de benzi desenate. Acest număr trebuie să poată fi scăzut și crescut. | ||
| * Permiteți modificarea de la tastatură a tipului de suprafață ce se desenează: suprafață de translație și de rotație. | * Permiteți modificarea de la tastatură a tipului de suprafață ce se desenează: suprafață de translație și de rotație. | ||
| - | * După acest pas, rezultatul pe care ar trebui să îl obțineti este următorul: \\ {{ :ppbg:laboratoare:rotation-surface-animation.gif?600 |}} | + | * După acest pas, rezultatul pe care ar trebui să îl obțineti este următorul: \\ {{ :ipg:laboratoare:rotation-surface-animation.gif?600 |}} |
| <hidden> | <hidden> | ||