This shows you the differences between two versions of the page.
spg:teme:2020:01 [2020/11/25 02:02] andrei.lambru |
spg:teme:2020:01 [2020/11/26 15:22] (current) andrei.lambru |
||
---|---|---|---|
Line 19: | Line 19: | ||
* Generarea Apei | * Generarea Apei | ||
- | Atât râul principal, cât și brațele sale se vor genera folosind suprafețe de translație bazate pe curbe Bezier. Punctele de control pe care le veți folosi pentru a construi curba Bezier pot fi generate aleator. Acestea se vor afla la jumătatea lățimii râului. | + | Atât râul principal, cât și brațele sale se vor genera folosind suprafețe de translație bazate pe curbe Bezier. Punctele de control pe care le veți folosi pentru a construi curba Bezier vor fi generate aleator. Curba rezultată se află la jumătatea lățimii râului. |
Pentru a putea uni râul principal cu cele trei brațe ale sale veți considera că ultimul punct de control folosit pentru generarea râului principal este în același timp și primul punct de control al celor trei brațe, urmând ca celelalte puncte de control ale fiecărui braț să fie generate aleator. | Pentru a putea uni râul principal cu cele trei brațe ale sale veți considera că ultimul punct de control folosit pentru generarea râului principal este în același timp și primul punct de control al celor trei brațe, urmând ca celelalte puncte de control ale fiecărui braț să fie generate aleator. | ||
Line 37: | Line 37: | ||
{{ :spg:teme:2020:munte_generare.png?nolink&800 |}} | {{ :spg:teme:2020:munte_generare.png?nolink&800 |}} | ||
- | Ca să generați muntele, va trebui să generați două suprafețe de translație. Fiecare suprafață va merge de-a lungul marginii unui râu. Pentru a calcula punctul de control de start, va trebui să calculați coordonatele intersecției marginilor celor două râuri (a se observa în imaginile de mai jos) (Hint: https://stackoverflow.com/questions/563198/how-do-you-detect-where-two-line-segments-intersect/565282#565282). Restul punctelor vor fi calculate folosind media aritmetică dintre punctele folosite pentru generarea râurilor. Pentru a da diferite înălțimi munților, puteți varia coordonata y. | + | Ca să generați muntele, va trebui să generați două suprafețe. Fiecare dintre acestea va merge de-a lungul marginii unui râu. Pentru a calcula punctul de start, va trebui să calculați coordonatele intersecției marginilor celor două râuri (a se observa în imaginile de mai jos) (Hint: https://stackoverflow.com/questions/563198/how-do-you-detect-where-two-line-segments-intersect/565282#565282). Restul punctelor vor fi calculate folosind media aritmetică dintre punctele folosite pentru generarea râurilor. Pentru a da diferite înălțimi munților, puteți varia coordonata y. |
{{ :spg:teme:2020:munte4.png?nolink&400 |}} | {{ :spg:teme:2020:munte4.png?nolink&400 |}} | ||
Line 54: | Line 54: | ||
=== Bărcuța de pe Apă === | === Bărcuța de pe Apă === | ||
- | Pe râu se va plimba o bărcuță. Aceasta se va plimba aleator atât pe râul principal, cât și pe brațele acestuia pe direcția punctelor de control care definesc curbele. În mișcarea ei, bărcuța, evident, va fi rotită corespunzător (Hint: https://stackoverflow.com/questions/53365389/opengl-rotate-object-on-y-axis-to-look-at-another-object). | + | Pe râu se va plimba o bărcuță. Aceasta se va plimba aleator atât pe râul principal, cât și pe brațele acestuia la mijlocul latimii raului. Deplasarea se va face pe curbele Bezier utilizate pentru generarea râurilor. În mișcarea ei, bărcuța, evident, va fi rotită corespunzător (Hint: https://stackoverflow.com/questions/53365389/opengl-rotate-object-on-y-axis-to-look-at-another-object). |
Elicea motorului bărcuței va arunca în urma sa apa. Pentru a simula acest lucru, puteți folosi un sistem de particule. La resetarea sistemului, aveți grijă să setați poziția și direcția particulelor într-un mod relativ aleator. | Elicea motorului bărcuței va arunca în urma sa apa. Pentru a simula acest lucru, puteți folosi un sistem de particule. La resetarea sistemului, aveți grijă să setați poziția și direcția particulelor într-un mod relativ aleator. |