Seite 4 von 6

Verfasst: 17.08.2006 00:01
von Ground0
Ok die Ogre3D engine ist sehr gut, blos die integration in PureBASIC ist nach wie vor eine Katastrophe...

Gruss G0

PS:
1, Senkrechte Wände solten doch möglich sein? Grosser Farbunterschied... ? oder nicht? ich meinte zumindest...

2, Das solte doch auch gehen zur Laufzeit erstellen? in dem du die Parameter einzeln übergibst und nicht in einer Datasection .. habs noch nicht ausprobiert... Animationen gehen ebenfals siehe beiliegender Roboterbeispiel...

3, Das kapier ich jetzt nicht was du da meinst...

Verfasst: 17.08.2006 13:38
von Xenos
1) Mit den Senkrechten Wänden ist so ne Sache... Ich wollte ein Game in 3d erstellen und habe dafür mit senkrechten Wänden experimentiert. Problem dabei: man Sieht, dass es nicht senkrecht ist und die Textur wird extrem gestreckt, es sieht auf deutsch gesagt sch...lecht aus. Und ein Terrain aus mehreren Entities zusammenzusetzen, verbraucht extrem viel Leistung.

2) Mir ist keine Möglichkeit diesbezüglich bekannt... Ideen willkommen

3) Damit ist gemeint, dass eine Entity einer anderen sozusagen untergeordnet wird.
Parent -> Child/ Parent -> Child
|
v
Child

Alles, was mit einer Parent- Entity geschieht, wirkt sich auch auf die Child- entity aus. (z.b. Textur, Drehungen, etc) Aber was mit einer Child entity passiert, wirkt sich nicht auf das zugehörige Parent aus. Jedes Child hat ein Parent, aber jedes Parent kann beliebig viele Child haben.
Ich habe bereits versucht, etwas derartiges zu lösen, indem ich mit Strukturen folgender Art experimentiert habe;

Code: Alles auswählen

Structure Entity
ID.l ; Kennziffer der Entity
Parent.l ;ID des Parent, falls vorhanden
NextChild.l ; ID der nächsten Child-Entity des selben Parent
PrevChild.l ; ID ~ vorhergehenden ~         ~    ~        ~
OwnChild.l ;ID der untergeordneten Child entity

PosX.l   ;die globalen Koordinaten
PosY.l
PosZ.l
Pitch.l   ;die Drehungen um die Achsen
Yaw.l
Roll.l
Texture.l ;SpriteID()

EndStructure
Der Grundgedanke ist, dass alle relativen Änderungen eines Parents (z.B. PosX+ 10) von den Childs der untergeordneten Ebene mitgemacht werden, aber relative Bewegungen des Childs sich nicht auf das Parent auswirken.)

Diesbezüglich gab es eine gute Erklärung aus dem Bereich von BlitzBasic, ich weis leider nicht mehr wo... :cry:

Verfasst: 17.08.2006 14:24
von bobobo
Wie sollte es möglich sein mit einem maximalen Farbunterschied von
nebeneinanderliegenden Pixeln etwas darzustellen was übereinander
liegt ,nämlich einen senkrechte Wand ? Die Wand hat dann immer eine
wenn auch kleine Neigung.

Verfasst: 17.08.2006 14:43
von Xenos
genau das ist das Problem...

Ich habe es mit rechteckigen Flächen probiert, aber bastel mal so ein Terrain aus 256x256 Flächen mit drei oder mehr Höhenebenen, da wird die spucke lang...

Verfasst: 17.08.2006 15:05
von bobobo
Dann nimmste halt meine Wand :)

Verfasst: 17.08.2006 15:24
von dllfreak2001
Bei modernen Engines (siehe FarCry) kann man Klippen produzieren
die nicht so shieße aussehen.
Wie das genau geht weiß ich nicht, aufjedenfall wird dort die Steigung bei der Texturierung mit berücksichtigt.

Verfasst: 17.08.2006 16:58
von bobobo
Oder Du nimmst meine Klippe :)

Verfasst: 17.08.2006 22:24
von Xenos
nette Lösung :mrgreen:

wenn du das jetzt noch so hinbekommst, dass man irgendwie im Terrain eine Klippe erzeugen kann, bist du der größte. Bis jetzt waren die Höhengrafiken, aus denen man das Terrain erstellte immer in Graustufen, die die Höheninfos für die Punkte beherbergten wie wäre es: Rot für die Höhe, Blau für den Winkel der Tangenten und Grün ... meinetwegen für den Spaßfaktor oder sowas... :D

Verfasst: 18.08.2006 12:36
von dllfreak2001
mit dem terrainsystem von pb-ogre kriegst du das sowieso nie hin.

Verfasst: 18.08.2006 16:21
von Xenos
Schon richtig. Aber wer hat die Muße (und das Potential), ein besseres zu schreiben?
Im Prinzip müsste man irgendwie hintricksen können, dass das Terrainsystem auf Befehl (meinetwegen mit dem Grün parameter s.o.) zwei Punkte nicht direkt, sonder über eine Ecke miteinander verbindet, also statt

.......A
........\
..........\
............\
..............B

so

....A
....|
....|
....A'---B

Der Punkt A' müsste dann von dem System erzeugt werden und die Abfrage nach der Terrainhöhe müsste dann den Wert von A ergeben... Das ganze müsste, da die Punkte ja in einem Raster liegen, auch in 3D uneingeschränkt möglich sein, indem eventuell ein bereits vorhandener Punkt als Zwischenpunkt benutzt wird.

....A..................................y.....z
....|...................................^../
....|....................................|./
....A'---B.............................+----->x
........./
......./
.....C

(Ich hoffe, dass man diese etwas wirre Theorie verstehen kann :? )