Hangschräge
Übersicht

SiSoFloBetreff: Hangschräge |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo!
Hat jemand vielleicht ne Funktion oder ne Idee von einer Funktion zur Berechnung der Hangschräge in einem 3D-Spiel? Danke |
||
So wie ihr von anderen Menschen behandelt werden wollt so behandelt sie auch! |
- Zuletzt bearbeitet von SiSoFlo am Mi, März 04, 2009 20:13, insgesamt einmal bearbeitet
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
...was ist eine Hangexposition ![]() |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
ChaosCoder |
![]() Antworten mit Zitat ![]() |
---|---|---|
http://de.wikipedia.org/wiki/E...eographie)
Allerdings bleibt mir auch nach dem Lesen dieses Artikels ein Fragezeichen im Kopf. Was willst du denn ausrechnen? |
||
Projekte: Geolaria | aNemy
Webseite: chaosspace.de |
DjDETE |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich denke er möchte herausfinden, mit welcher seite der hang zur sonne zeigt.
du müsstest einfach die koordinaten überprüfen. MfG |
||
Aktuelles Projekt: XXX |XXX | 3% der v1b fertig
www.emu-soft.de.vu Für die Homepage suche ich noch Linktauschpartner, bei Interesse einfach melden. |
![]() |
Noobody |
![]() Antworten mit Zitat ![]() |
---|---|---|
So wie ich das verstanden habe, brauchst du nur die Normale des Hangs zu berechnen und auf den Vektor dann VectorYaw![]() |
||
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn es darum geht, eine Schadowmap aus einer Hightmap zu berechnen, dann geht es mit vereinfachten Mitteln:
Schattenwurf geht immer von einem höherem Pixel aus. Das heisst, von einem helerem Grauwert. Ist der nebenliegende (immer nur in eine Richtung gehen) tiefer als das Gefälle der Lichtstrahlen, dann wird nicht der neue Pixelwert genommen, sondern der alte minus Sonnenstrahlgefälle. Hier ist es vom Vorteil, das ganze als floats zu machen. Damit das ganze noch etwas ''plastischer'' aussieht sollte man pauschal noch steilen Wänden noch einen tieferen Grauwert hinzuaddieren. Dieses allerdings in Abhändigkeit in allen Richtungen der Pixel. Das heisst: Hoher Differenzwert = stärkere Verdunklung. Wenn dein Ziel ein anderes ist, dann vergiss mein rumgequatsche. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
SiSoFlo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Sorry, dass es so ungenau war:
Ich will ein Spiel machen indem man Häuser bauen kann. Aber nur wenn der Boden nicht zu schräg ist. Und das möchte ich herausfinden (Ich hab gemerkt, dass Hangexposition der falsche Begriff ist ![]() |
||
So wie ihr von anderen Menschen behandelt werden wollt so behandelt sie auch! |
![]() |
ozzi789 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Anstatt dies zu berechnen könntest du eine Height map erstellen und dort nachschauen ![]() |
||
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5 |
FWeinbehemals "ich" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich glaube er will wissen wie die Steigung an dem Punkt ist damit er das Haus in dem Winkel zum Boden Bauen kann.
mfg ich |
||
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs |
![]() |
ozzi789 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Aber nur wenn der Boden nicht zu schräg ist.
Man nehme die gewünschte Koordinate, rechnet das zu auf die Heightmap und liest den Wert aus, nun vergleicht man die umliegenden Pixel (farbwert abweichung) und erhält so die Steigung ![]() Sollte doch funktionieren ^^ ? |
||
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5 |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mit EntityX![]() Mit MeshWidth ![]() Anhand dieser Eckpunkte kann man mittels LinePick ![]() ![]() Der Rest ist einfacher Dreisatz. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
peacemaker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zwei Punte nehmen, Y-Unterschied berechnen und dann auch die Distanz der beiden Punkte in die Rechnung miteinbeziehen, und schon hast du es.
Dann müssteste halt rumexperimentieren, wieviel Steigung dir noch angemessen für ein Haus erscheint, etc. mfG |
||
~Tehadon~
www.tehadon.de http://www.blitzforum.de/worklogs/14/ |
SiSoFlo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hectic hat Folgendes geschrieben: Mit EntityX
![]() Mit MeshWidth ![]() Anhand dieser Eckpunkte kann man mittels LinePick ![]() ![]() Der Rest ist einfacher Dreisatz. Danke, das hilft mir schon mal weiter, aber was ist, wenn alle vier Ecken des Gebäudes auf gleicher Höhe stehen und dazwischen ein Loch oder ein Berg? Dann würde sich das Gebäude trotzdem bauen lassen! |
||
So wie ihr von anderen Menschen behandelt werden wollt so behandelt sie auch! |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, entweder du berücksichtigst dann auch die Zwischenräume, oder rechnest einfach damit, dass ein Brückenhaus gebaut werden kann. Allerdings will ich auch anmerken, dass die Auflösung eines Terrains nicht in Pflastersteingröße zu erstellen ist, sondern mindestens 2x2m betragen sollte. Selbst komerzielle Spiele benutzen nicht mehr Tiles pro Fläch. Die wissen allerdings auch damit umzugehen. Ist dieses also geklärt, sollte auch der Vorschlag bei LoadTerrain![]() |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
SiSoFlo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Es gibt nun ein neues Problem:
Ich hab eine Funktion zur Berechnung der Hangschräge ab wenn ich jetzt per ModifyTerrain den Hang dem Haus anpassen will geht es nicht. Hier der Code: Code: [AUSKLAPPEN] Global baux#, bauy#
HAUPTSCHLEIFE: If modus = 3;Modus 3 heisst Baumodus PositionEntity o, mx, my, mz;mx\y\z ist die picked Mausposition If Steile(terrain, o) ; Funktion zur berechnung der Hangschräge If MouseDown(1) baux = EntityX(o) bauz = EntityZ(o) Repeat ModifyTerrain(terrain, baux, bauy, zw);zw ist der Zwischenwert, den die Funktion Steile zurückgibt baux = baux + 0.1 If baux > EntityX(o) + MeshWidth(o) baux = EntityX(o) bauz = bauz + 0.1 EndIf Until bauz > EntityZ(o) + MeshDepth(o) modus = 0;Modus 0 heiflt das Haus ist gesetzt fx = mx;fx\y\z ist die Position des positionierten Hauses fy = TerrainY(terrain, EntityX(o), EntityY(o), EntityZ(o)) fz = mz EndIf EndIf EndIf |
||
So wie ihr von anderen Menschen behandelt werden wollt so behandelt sie auch! |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Deine Funktion Steile() sollte nicht True![]() ![]() |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ist zw als Float deklariert? TerrainHeight![]() ![]() ![]() ![]() |
||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
SiSoFlo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
an hectic: also erstens hab ich ne Schlaufe, in der alle x- und z-Coordinaten abgecheckt werden und wenn ich die Funktion Schräge jedesmal einen neuen Höhenwert zurück geben lasse obwohl der ohnehin immer der gleiche ist verlangsamt das mein Spiel nur unnötig
un an Nicdel: Nicdel hat Folgendes geschrieben: Ist zw als Float deklariert? TerrainHeight
![]() ![]() ![]() ![]() also das ModifyTerrain einen Wert zwischen 0 und 1 zurück gibt wusste ich nicht. Jetzt hab ich das korigiert: geht immer noch nich. Und die andere Schleife ist nur zur Übersicht -> daran kann's nich liegen! ![]() Vielleicht hat noch jemand ne andere Idee ![]() |
||
So wie ihr von anderen Menschen behandelt werden wollt so behandelt sie auch! |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du hast mich offensichtlich falsch verstanden. Deine Funktion soll den Durchschnitt der Höhe eines bestimmten Bereiches zurück geben. Zum Beispiel die Grundfläche eines Hauses. Danach solltest du dich richtien und eine glatte Fläche erstelle - das Terrain planieren - und danach das Haus auf diese Höhe setzen. | ||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
SiSoFlo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also bei mir ist ModifyTerrain etwas launisch ![]() Mal geht's mal nich ich muss bissle rumprobieren jedenfalls scheint es kein bestimmtes Problem zu sein danke für eure Hilfe! Wenn ich ein konkretes Problem hab melde ich mich wieder! ![]() |
||
So wie ihr von anderen Menschen behandelt werden wollt so behandelt sie auch! |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group