automatische Texturzuweisung
Übersicht

Boris1993Betreff: automatische Texturzuweisung |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo
ich arbeite gerade an einem flugsimulator in dem ein zufälliges terrain erzeugt wird und möchte dass z.B. ab einem bestimmten steigungswinkel (keine ahnung wie der berechnet werden soll) statt der bodentextur eine felsentextur zugewiesen wird kann mir jemand vllt einen denkanstoß geben mit beispielcode danke schonmal für eure antworten mfg Boris |
||
![]() |
US-Blitzehemals "SimssmiS" |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich hab eher ne bemerkung oder tipp wie das geht weiß ich leider nicht kann noch nicht mal gute 2d spiele programieren bin anfänger
aber ich würde sagen steine ab einer bestimmten höhe alse in gebirgen da es so realistischer ist |
||
![]() |
Elendil |
![]() Antworten mit Zitat ![]() |
---|---|---|
also wenn ich dich jetzt richtig verstanden habe, dann könnte dir der Befehl EntityPitch() helfen. Mit dem fragst du den Drehwinkel der X-Achse ab.
Hier n Beispielcode: Code: [AUSKLAPPEN] Graphics3D 640, 480
SetBuffer BackBuffer() camera = CreateCamera() PositionEntity camera, 0, 1, 0 light = CreateLight() RotateEntity light, 90, 0, 0 terrain = CreateTerrain(128) grass_tex = LoadTexture("Sand0134_2_thumbhuge.jpg") stein_tex = LoadTexture("Stein03.jpg") While Not KeyHit(1) If KeyDown(205) = 1 Then TurnEntity camera, 0, -1, 0 If KeyDown(203) = 1 Then TurnEntity camera, 0, 1, 0 If KeyDown(208) = 1 Then MoveEntity camera, 0, 0, -0.05 If KeyDown(200) = 1 Then MoveEntity camera, 0, 0, 0.05 If KeyDown(17) = 1 Then TurnEntity camera, -1,0,0 If KeyDown(31) = 1 Then TurnEntity camera, 1,0,0 If EntityPitch(camera) < -20 Then EntityTexture terrain, stein_tex Else EntityTexture terrain, grass_tex EndIf RenderWorld Text 0, 0, "Benutze Cursortasten..." Text 0, 50, EntityPitch(camera) + " = Steigungswinkel" Flip Wend End Hoff ich konnt helfn und dases dis war was du wolltet ![]() LG Elendil PS: mit den Pfeiltasten steuerste und mit W/S änderst du den winkel ![]() EDIT: ou sorry falsch verstanden, glaub ich, ging davon das aus das du die camera meintest mit dem steigungswinkel und nich vom terrain =\ x_X |
||
- Zuletzt bearbeitet von Elendil am Mo, Apr 05, 2010 10:54, insgesamt 3-mal bearbeitet
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Man muss die Oberflächennormale an jedem Punkt berechnen und deren z-Komponente überprüfen.
Wenn du dich nicht mit Vektorberechnungen - Stichwort: Kreuzprodukt - beschäftigen möchtest, nutzt du für jede Stelle des Terrains LinePick ![]() ![]() Den Neigungswinkel bekommst du mit ACos ![]() Je nachdem, wie die Neigung an dieser Stelle ist, änderst du die Textur des Terrains an dieser Stelle. Abhängig davon, wie du die Textur änderst, kann die Berechnung und Texturänderung aber nur eingeschränkt für regelmäßige Berechnungen geeignet sein. mfG mpmxyz |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
![]() |
Goodjee |
![]() Antworten mit Zitat ![]() |
---|---|---|
eg solltest du dir den gesamten normalenvektor angucken, nicht nur nz, und diesen dann mit dem vektor (0/1/0) vergleichen mit dem skalarprodukt und dir den so erhaltenen winkel betrachten | ||
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/ |
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Goodjee:
Und wenn du deine Berechnungen vereinfachst, kommen meine Berechnungen heraus. Ich wollte die Lösung nicht komplexer als nötig machen. mfG mpmxyz |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
![]() |
Goodjee |
![]() Antworten mit Zitat ![]() |
---|---|---|
denke nich, nehmen wir eine fläche, die einfach von links nach rechts abfällt, die zkomponente des normalenvektors sollte 0 sein, der winkel kann aber ein beliebiger winkel zwischen 0 und 180° sein | ||
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/ |
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Goodjee, ich ging davon aus, dass die z-Komponente beim Terrain nach oben zeigt. (Das wäre zumindest das logischste, was man meiner Meinung nach machen könnte.)
Unter dieser Annahme stimmt meine Aussage voll und ganz. Da es aber laut der Hilfe eher die y-Komponente sein muss, muss man PickedNY ![]() Das Skalarprodukt lässt sich aber trotzdem wegvereinfachen. Dein Gegenargument kann ich aber nicht verstehen. Dieser Wert ändert sich ja beim Kippen stetig und bleibt zwischen 0 und 1. mfG mpmxyz |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
![]() |
Goodjee |
![]() Antworten mit Zitat ![]() |
---|---|---|
jo, hast recht | ||
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/ |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group