Real-time Procedural planet renderer in Java
-
Wie macht man solche prozeduralen Planeten?
https://www.youtube.com/watch?v=X2dyiitk6EY
-
This time, with music by DaFunk - "Toytone Tribe (childhood memories rmx)", from remix.kwed.org
ich hoere Chopin's Nocturne op.9 No.2, what's going on?
Wie macht man solche prozeduralen Planeten?
du bastelst dir erstmal in tetrahedron. du teilst jede kante von einem dreieck in zwei,diese verbindest du zu 4 neuen dreiecken. die neuen punkte normalisierst du auf den radius der gewuenschten kugel. du kannst die tesselierung anhand der distanz zur kamera machen um mehr details nah dran und weniger weiter weg zu haben.
dazu entscheidest du pro kante, ob du sie teilst, damit erhaelst du pro dreieck 1, 2, 3 oder 4 neue dreiecke.damit es nicht nur wie eine kugel ausschaut, kannst du den radius auf den du normalisierst noch variieren. du kannst planetare daten nutzen (gibt es als download auf nasa servern), oder du nutzt einen der vielen procedurally terrain algorithmen. dabei nutzt du die longitude and latitude coordinaten so wie bei terrain sonst x und y.
zum texturieren kannst du ein paar sich wiederholende texturen nehmen z.b. sand, wasser, schnee, rocks etc. und berechnest pro texture einen blendwert den du z.b. pro vertex ablegst. die summe der blendwerte sollte 1 ergeben. die staerke jedes blendwertes kannst du anhand einfacher logik bestimmen. z.b. dass unter einem bestimmten hoehenwert alles wasser ist, und ueber einem bestimmten alles schnee ist, dass flache regionen sandig sind und dass steile eher steinig sind. usw.
das machst du natuerlich nicht pro frame, sondern backst es dir alle zeitlang mal (sah aus als ob in dem video die updates auch alle zeitlang kamen).
du kannst unterschiedliche initialwerte nutzen pro planet wenn du moechtest dass die randomizer unterschiedliche dinge ausspucken. es hilft oft auch eine simple pow funktion fuer die hoehe um von rund aussehenden (natur) planeten zu spitz aussehenden steinplaneten zu blenden und der blendwert ist dann einmal pro planet bestimmt (randomizer oder von dir irgendwo).
frag wenn etwas unklar ist. das meiste sollte aber auch viele male in google zu finden sein
-
Danke für die Einführung, dann werde ich mal Google und Eclipse anschmeißen.