14 3D-Fragen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

14 3D-Fragen

Beitrag von PureBasic4.0 »

Hi, Leute

Tut mir leid, wenn ich euch so zumülle mit Fragen, aber ich
habe mal ein paar Fragen zur 3D-Engine:

1) Gibt es eine Software zum erstellen von Terrains, oder muss ich ein ganz normales Grafikprogramm (z.B.: Gimp) nehmen?
2) Kennt jemand eine Seite, auf der man schon vorgefertigte Meshes herunterladen kann?
3) Gibt es ein Programm, mit dem man Meshes komfortabler erstellen kann, als mit Wings3D?
4) Es gibt im Ordner <PureBasic>\Examples\Sources\Data folgende Dateien: terrain.png, terrain_detail.jpg, terrain_texture.jpg. Warum ist die erste Datei 257x257 Pixel, die zweite 256x256 und die dritte 1024x1024 groß? Reicht als Textur nicht eine einheitliche Größe?
5) Welche Funktion hat die Datei <PureBasic>\Examples\Sources\Data\terrain_detail.jpg? Die Datei terrain.png ist ja das Terrain und terrain_texture.jpg ist die Textur dazu. Aber wozu benötigt man die terrain_detail.jpg und wie erstelle ich solch eine Datei?W`
6) Wenn das Terrain zu Ende ist, kann man sozusagen aus der Landschaft heraus ins Nichts laufen. Wie kann ich verhindern, das so etwas passiert?
7) Wenn ich jetzt z.B. ein Haus auf das Terrain stellen will, muss ich dann Meshes verwenden, oder gehen Sprites auch?
8) Wie kann ich ein größeres Terrain erstellen? Muss ich die Auflösung der Terrain Bilder nur höher stellen, oder muss ich noch etwas beachten?
9) Wie kann ich mit Wings3D erstellte Meshes animieren (AnimateEntity)? Muss ich bei Entitys noch etwas beachten?
10) Im Verzeichnis <PureBasic>\Examples\Sources\Data ist eine Datei Namens r2skin.jpg. Dies ist die Texture-Datei für das Mesh robot.mesh. Wie kann ich solche Texture-Dateien für meine eigenen Meshes erstellen?
11) Wie kann ich ein Mesh direkt vor der Kamera anzeigen?
12) Wie kann ich feststellen, ob die Kamera gerade bewegt wird, oder nicht? (Möchte, dass sich das Mesh bewegt, sobald die Kamera bewegt wird)
13) wie kann man prüfen, ob man mit einem Zielkreuz auf einem Mesh ist?
14) Wenn man auf einem Terrain ganz unten steht (0) und nach ganz oben (255) möchte und es keinen Fließenden Übergang gibt, läuft man normalerweise darauf zu und schon ist man oben. Ich möchte aber, dass man nur eine Bestimmte Anzahl an Pixeln "einfach nach oben laufen kann". Wie geht das?

Vielen Dank schon mal, dass ihr euch durch die 14 3D-Anfängerfragen gekämpft habt. Tut mir Leid, dass ich euch hier gerade mit Fragen bis oben hin vollstopfe. Bin nur leider blutiger Anfänger was 3D anbelangt und hoffe, dass ihr da mehr Erfahrung habt.

VIELEN DANK NOCHMAL,
PureBasic4.0
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
Benutzeravatar
Leonhard
Beiträge: 602
Registriert: 01.03.2006 21:25

Re: 14 3D-Fragen

Beitrag von Leonhard »

Ich hab zwar nicht so viel ahnung von 3D-Programmierung, aber ich versuch mal, dir bei einigen Fragen zu helfen.
PureBasic4.0 hat geschrieben:3) Gibt es ein Programm, mit dem man Meshes komfortabler erstellen kann, als mit Wings3D?
Mit fast jedem Programm, wo man 3D-Objekte erstellen kann, kann man auch alles als Mesh exportieren.
PureBasic4.0 hat geschrieben:10) Im Verzeichnis <PureBasic>\Examples\Sources\Data ist eine Datei Namens r2skin.jpg. Dies ist die Texture-Datei für das Mesh robot.mesh. Wie kann ich solche Texture-Dateien für meine eigenen Meshes erstellen?
Dies kann man einfach mit Paint machen. Da das da aber sehr kompliziert ist, empfehle ich dir Cinema 4D mit Body Paint. Dort kann man dierekt auf die Textur in 3D auf das Mesh/Objekt mahlen.
PureBasic4.0 hat geschrieben:11) Wie kann ich ein Mesh direkt vor der Kamera anzeigen?
Die Kamera-Position auslesen und dies dann davor stellen.
PureBasic4.0 hat geschrieben:12) Wie kann ich feststellen, ob die Kamera gerade bewegt wird, oder nicht? (Möchte, dass sich das Mesh bewegt, sobald die Kamera bewegt wird)
Die Kamea bewegst du selber. Du solltest dann einfach nach dem Bewegen der Kamera das Mesh bewegen.

PureBasic4.0 hat geschrieben:7) Wenn ich jetzt z.B. ein Haus auf das Terrain stellen will, muss ich dann Meshes verwenden, oder gehen Sprites auch?

und

14) Wenn man auf einem Terrain ganz unten steht (0) und nach ganz oben (255) möchte und es keinen Fließenden Übergang gibt, läuft man normalerweise darauf zu und schon ist man oben. Ich möchte aber, dass man nur eine Bestimmte Anzahl an Pixeln "einfach nach oben laufen kann". Wie geht das?
Für solche dinge solltest du dir einen Map-Editor an Land ziehen und mit Maps statt mit Terrain arbeiten.
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag von ZeHa »

Die Kamea bewegst du selber. Du solltest dann einfach nach dem Bewegen der Kamera das Mesh bewegen.

Das geht zwar, aber im Grunde sollte man es eher andersrum machen - man bewegt das Mesh, und sagt der Kamera quasi, daß sie sich am Mesh orientieren soll, also so, als wären sie miteinander verbunden. Bewegt wird aber in erster Linie das Mesh.


13) wie kann man prüfen, ob man mit einem Zielkreuz auf einem Mesh ist?

Hierzu mußt Du auf jeden Fall lernen, die Spiellogik von der Darstellung zu trennen. Ein Gegner wird nicht dann getroffen, wenn das Zielkreuz auf dem Mesh ist, sondern wenn der Spieler in die richtige Richtung schießt. Und die Position und die Richtung Deiner Spielfiguren hast Du sowieso irgendwo gespeichert. Dann werden damit auch alle wichtigen Berechnungen durchgeführt. Aber das Zielkreuz usw. ist nur ein Ergebnis der Darstellung und der verwendeten Perspektive. Wenn Du auf einmal das Geschehen von oben zeigst, müßtest Du ja andere Berechnungen verwenden, weil das Zielkreuz gar nicht mehr angezeigt wird. Und damit Du nicht alles 5x machst, gehst Du gleich von Deinen Koordinaten aus, und machst damit alle Berechnungen, und zwar völlig unabhängig davon, ob Du das Spiel hinterher als 3D-Grafik mit Meshes anzeigst, oder mit Raytracing, oder als 2D-Spiel von oben oder als Text-Modus-Spiel ;)

Bei sauberer Programmierung wäre diese Stufe nämlich komplett austauschbar und hat mit der Spiellogik null zu tun. Ist nicht immer 100% durchsetzbar, aber man sollte sich zumindest danach orientieren ;)
Bild     Bild

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
Benutzeravatar
Programie
Beiträge: 1280
Registriert: 06.08.2005 22:56
Computerausstattung: https://www.sysprofile.de/id160800
Wohnort: Gernsbach
Kontaktdaten:

Re: 14 3D-Fragen

Beitrag von Programie »

PureBasic4.0 hat geschrieben:3) Gibt es ein Programm, mit dem man Meshes komfortabler erstellen kann, als mit Wings3D?
Ich glaube, dass Blender auch ein Programm ist, um die Mesh-Dateien zu erstellen, oder? (Ich weiß es nicht genau)
BildBildBildBild
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

Beitrag von PureBasic4.0 »

ok. danke für euere antworten
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

zu 14)
die terrain-höhe musst du eh auslesen, um deine figur darauf zu platzieren.
du kannst auch die terrainhöhe von einem stückchen vor deiner figur abfragen,
und die beiden vergleichen.
wenn die differenz zu groß wird, wird es unüberwindlich.

auf ähnlicher basis könntest du auch nen wegfindungs-algo schreiben..
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
xperience2003
Beiträge: 972
Registriert: 04.10.2004 18:42
Computerausstattung: Amiga, LinuxMint, Windows7
Wohnort: gotha
Kontaktdaten:

..und 14 antworten

Beitrag von xperience2003 »

1) Gibt es eine Software zum erstellen von Terrains, oder muss ich ein ganz normales Grafikprogramm (z.B.: Gimp) nehmen?
Terraineditoren speichern meistens ein mesh
nimm einfach erstmal ein malprogramm male
etwas weiss auf schwarz und dann jag nen blur-filter drueber
(gausian blur)
wenn du das einmal gemacht hast, weist du wie es funktioniert
2) Kennt jemand eine Seite, auf der man schon vorgefertigte Meshes herunterladen kann?
die gibts wie sand am meer, alleridngs (fast) nie mit guten modellen ^^

http://www.the3darchive.com/archive.cgi
3) Gibt es ein Programm, mit dem man Meshes komfortabler erstellen kann, als mit Wings3D?
das wird schwer, zumal wings3d das einfachste ist, was es so gibt
aber schau dir mal gmax an oder der benannte blender tuts auch
http://download.freenet.de/archiv_g/gmax_3813.html
4) Es gibt im Ordner <PureBasic>\Examples\Sources\Data folgende Dateien: terrain.png, terrain_detail.jpg, terrain_texture.jpg. Warum ist die erste Datei 257x257 Pixel, die zweite 256x256 und die dritte 1024x1024 groß? Reicht als Textur nicht eine einheitliche Größe?
terrain.png ist das terrain als graustufenbild, daraus wird das terrain-mesh
gebildet..je heller die farbe, desto hoeher das poly..easy nich?!^^
detailmap ist das detail , diese texe wird mehrfach gekachelt auf das terrain gelegt
texture ist die colormap des terrains, diese wird ueber das ganze terrainmesh gespannt..das kommt natuerlich zu verwischungen, aber dafuer haben wir ja die detail map ^^
5) Welche Funktion hat die Datei <PureBasic>\Examples\Sources\Data\terrain_detail.jpg? Die Datei terrain.png ist ja das Terrain und terrain_texture.jpg ist die Textur dazu. Aber wozu benötigt man die terrain_detail.jpg und wie erstelle ich solch eine Datei?W`
wofuer ist oben benannt, und erstellen kannst du alle texturen in einem malprogramm
von paint bis photoshop
6) Wenn das Terrain zu Ende ist, kann man sozusagen aus der Landschaft heraus ins Nichts laufen. Wie kann ich verhindern, das so etwas passiert?
durch 2 dinge
1 ) gutes gamedesign
bei gothic habens einfach eine barriere drumrumgemacht, ein geniestreich ^^

2 ) multiterrain, also mehrere terrains nachnander, wie eine tilemap
oder einfach begrenzen..zb mit meshes...
7) Wenn ich jetzt z.B. ein Haus auf das Terrain stellen will, muss ich dann Meshes verwenden, oder gehen Sprites auch?
Wie kann ich ein größeres Terrain erstellen? Muss ich die Auflösung der Terrain Bilder nur höher stellen, oder muss ich noch etwas beachten?
es geht beides ..allerdings sieht das sprite etwas dumm aus
und das terrain kann man scalieren
9) Wie kann ich mit Wings3D erstellte Meshes animieren (AnimateEntity)? Muss ich bei Entitys noch etwas beachten?
am besten mit einem animationsprogramm?
milkshape soll gut sein
10) Im Verzeichnis <PureBasic>\Examples\Sources\Data ist eine Datei Namens r2skin.jpg. Dies ist die Texture-Datei für das Mesh robot.mesh. Wie kann ich solche Texture-Dateien für meine eigenen Meshes erstellen?
schau dir einfach alle beispielprogramme an, da siehst fuer was alles ist
..und...texturen kann mn mit malprogramm machen ^^
11) Wie kann ich ein Mesh direkt vor der Kamera anzeigen?
kamera vor das mesh stellen , oder mesh vor die camera
12) Wie kann ich feststellen, ob die Kamera gerade bewegt wird, oder nicht? (Möchte, dass sich das Mesh bewegt, sobald die Kamera bewegt wird)
du kannst das mesh einfach an die camera anhaengen, wenn es sich mitbewegen soll
schau dir die parent/child befehle an
13) wie kann man prüfen, ob man mit einem Zielkreuz auf einem Mesh ist?
...das wird komplizierter , das nennt sich picking oder raycollision
schau mal im handbuch
14) Wenn man auf einem Terrain ganz unten steht (0) und nach ganz oben (255) möchte und es keinen Fließenden Übergang gibt, läuft man normalerweise darauf zu und schon ist man oben. Ich möchte aber, dass man nur eine Bestimmte Anzahl an Pixeln "einfach nach oben laufen kann". Wie geht das?
..einfach physik einschalten, mit einer gewissen gravitation und einer
bewegungsgeschwindigkeit und einer gewissen terrainhoehe kommt
die figur nicht mehr bergauf

du kannst auch ganz einfach an nicht betretbare stellen einen
unsichtbaren wuerfel erstellen und den mit kollision belegen
amiga rulez...
Rebirth Software
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

Beitrag von PureBasic4.0 »

nochmal vielen Dank, dass ihr euch die mühe gemacht habt
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
Antworten