AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi [GLScene] Ein Dorf erstellen...
Thema durchsuchen
Ansicht
Themen-Optionen

[GLScene] Ein Dorf erstellen...

Offene Frage von "Neutron"
Ein Thema von Neutron · begonnen am 8. Dez 2006 · letzter Beitrag vom 21. Dez 2006
Antwort Antwort
Seite 1 von 2  1 2      
Neutron

Registriert seit: 14. Mär 2006
47 Beiträge
 
Delphi 2006 Professional
 
#1

[GLScene] Ein Dorf erstellen...

  Alt 8. Dez 2006, 15:29
Hallo!
Ich würde gern mit GLScene ein kleines Dorf "bauen"

Ich hab auch schon angefangen! Und zwar steht bis jetzt:
Eine Landschaft mit Grasboden, ein Himmel (Skydom), eine Sonne in form von GLLensFlare, ein Baum (GLTree), und 3 Wände (3 dünne, hohe Quader)
die irgendwann mal ein Haus werden sollen...

Man kann sich frei bewegen und sieht alles aus der First Person sicht...

Aber es gibt leider noch ein paar schwerwiegende Probleme die mich davon
abhalten mein Traum zu verwirklichen!!

Meine Probleme sind:

1.Wie erstelle ich verschiedenne Texturen (Kiesel, Gras, Weg) auf dem Boden (TerrainRenderer)

2.Wolken wären ganz gut... allerdings hab ich keine Ahnung wie ich in Skydome Wolken darstellen kann!!

3.Durch meine 3 Wände, die ja mal ein Haus werden sollen, kann man durchlaufen... und ich weis nicht
wie ich das verhindern kann...

Das wär es eigentlich! Kann mir irgendjemand helfen?

Danke im Voraus!!
  Mit Zitat antworten Zitat
Flips

Registriert seit: 17. Feb 2005
Ort: Sankt Wendel
491 Beiträge
 
Delphi 7 Professional
 
#2

Re: [GLScene] Ein Dorf erstellen...

  Alt 14. Dez 2006, 22:03
Hi.

Hm, wenn dein Dorf fertig ist musst du es mir mal schicken, dann schau ich ma ob ich einziehe
Ne, ernst jetzt.

Zitat:
Wie erstelle ich verschiedenne Texturen (Kiesel, Gras, Weg) auf dem Boden (TerrainRenderer)
Ich nehme an du meinst das so, dass du entweder beispielsweise ne Standartwiese hast auf der zur Abwechslung entweder vordefieniert oder zufällig erscheinende andere Stellen wie Sand oder Gras kommen. Oder willst du sowas wie ne Art Leveldatei, wo drinsteht wie die Wiese gerendert werden soll (also beispielsweise gras mit einem weg darin). Für alle Möglichkeiten kann ich dir helfen^^


Zitat:
2.Wolken wären ganz gut... allerdings hab ich keine Ahnung wie ich in Skydome Wolken darstellen kann!!
Sry, mit Skydome kenn ich mich nicht aus


Zitat:
3.Durch meine 3 Wände, die ja mal ein Haus werden sollen, kann man durchlaufen... und ich weis nicht
wie ich das verhindern kann...
Das ganze nennt sich Kollisionskontrolle,
hier mal ein paar links, hoffentlich hilfreich:
NEHE-GAMEDEV
Sulaco

MfG
Flips
Philipp F.
  Mit Zitat antworten Zitat
Neutron

Registriert seit: 14. Mär 2006
47 Beiträge
 
Delphi 2006 Professional
 
#3

Re: [GLScene] Ein Dorf erstellen...

  Alt 17. Dez 2006, 10:13
Zitat:
Ich nehme an du meinst das so, dass du entweder beispielsweise ne Standartwiese hast auf der zur Abwechslung entweder vordefieniert oder zufällig erscheinende andere Stellen wie Sand oder Gras kommen.
Genau das meine ich!

Und zu den Wänden... das Problem hab ich schon beseitigt!

PS: Wenn du mir hilfst, kannst du ruhig ins Dorf ziehen! Da hab ich nichts dagegen!
  Mit Zitat antworten Zitat
Neutron

Registriert seit: 14. Mär 2006
47 Beiträge
 
Delphi 2006 Professional
 
#4

Re: [GLScene] Ein Dorf erstellen...

  Alt 17. Dez 2006, 12:05
Ähhh...

Ich hab noch ein Problem...
Und zwar hab ich jetzt ein Haus gemacht aus ganz vielen Wänden (GLQubes) und ganz
vielen Böden- und Deckenteilen... Gibt es eine Möglichkeit alles zu einem Teil zu verbinden?

Warum? Ganz einfach alles ruckt jetzt schon... (Das ist nur ne leere Landschaft mit Himmel nem Baum und nem Haus!!
Und das ruckt richtig heftig! "Mein PC is eigentlich ein guter ")

Oder hat jemand ne bessere Idee?

An Flips:

Das Problem mit dem Terrain hab ich immer noch... Also wenn du das kannst... Kannst du mir das dann erklären?
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: [GLScene] Ein Dorf erstellen...

  Alt 17. Dez 2006, 12:27
Erstell dir Dein Haus doch in einem 3D-Editor und lade es.
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#6

Re: [GLScene] Ein Dorf erstellen...

  Alt 17. Dez 2006, 14:16
Wie inherited schon sagte, erstelle die Häuser mit einem 3D-Editor und speichere es im .3DS-Format.
Dann kannst du diese Objecte einfach in die Scene mit einbauen. Das ist einfacher als Tausende von Wänden mit eigens erzeugten Quadraten zu basteln.
Was wird denn das erst wenn du ein Tannebäumchen basteln möchtest ?

Guck mal dort: Grafiken von Spielen

...insbesondere die vorletzte Zeile...
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Flips

Registriert seit: 17. Feb 2005
Ort: Sankt Wendel
491 Beiträge
 
Delphi 7 Professional
 
#7

Re: [GLScene] Ein Dorf erstellen...

  Alt 17. Dez 2006, 14:24
Hi.

Also, zu dem Terrain.
Hier der Code für ne Wiese mit vordefinierten Wegen.


Zuerst legst du ein Bitmap-File mit der Größe deines Terrains an. Also wenn das Terrain 64*64 groß sein soll, dann wird das Bitmap 64*64 Pixel groß.
Nehmen wir an du willst also ein Terrain machen, welches einfach eine Wiese mit einem kleinen Platz und nem Teich darin darstellen soll. Bei mir würde das dann so aussehen (64*64)
http://flips5.fl.funpic.de/map.png

Zur Farberklärung:
  • Grün->Wiese
  • Dunkles Grau->Kiesel
  • Helles Grau->Übergang Wiese-Kiesel oder Kiesel-Wasser (mit Blending beispielsweise)
  • Blau->Wasser

So, jetzt brauchst du noch ne Routine zum auslesen (Optimierungswürdig ):
Delphi-Quellcode:

const SECTORS_COUNT = 4; //Wasser, Wiese, Kiesel, Grenzfäche
      SIZE = 4096; //64*64
      LENGTH = 64;
type Pixel = record
  koordinate : TPoint;
  farbe : TColor;
end;

type Sector = record
  farbe : TColor;
  filename : string;
end;

//Global
var Pixels : array [0..SIZE] of Pixel;
    Sectors : array [0..SECTORS_COUNT-1] of Sector;
    bit : TBitmap;


[...]

//=======ONCREATE========//

Sectors[0].farbe = clGreen;
Sectors[0].filename = 'texturen/wiese.tga';
[...]


bit := TBitmap.Create;
try
  bit.LoadFromFile(ExtractFilePath(ParamStr(0))+'level1.bmp');
  i:=0;
  for x := 0 to bit.Width-1 do
    for y := 0 to bit.Height-1 do
      begin
        Pixels[i].color := bit.Canvas.Pixels[x,y];
        Pixels[i].koordinate.X := x;
        Pixels[i].koordinate.Y := y;
        inc(i);
      end;
  finally
    bit.Free;
  end;
[...]
Wie gesagt, der Code is optimierungswürdig


So, als nächstes brauchst du einen Code der das ganze in OpenGL darstellt.
Delphi-Quellcode:

procedure RenderPixel(pPixel:TPixel;Nummer:integer);
begin
case pPixel.Color of
  clGreen : WiesenTextur.Bind; //Entsprechende Texturen Binden
  clGray : Kiesel.Bind; //Entsprechende Texturen Binden
  clMedGray : //Hier musste dir halt überlegen wie du das mit dem Blending machst :-)
  clBlue : Wasser.Bind; //Entsprechende Texturen Binden
end;
with pPixel.koordinate do
begin
  glBegin(GL_QUADS);
    glTexCoord2f(0,0);
      glVertex3f(x,1,y -LENGTH);
    glTexCoord2f(0,1);
      glVertex3f(x,1,(y-LENGTH)+1);
    glTexCoord2f(1,1);
      glVertex3f(x+1,1,(y-LENGTH)+1);
    glTexCoord2f(1,0);
      glVertex3f(x+1,1,y-LENGTH);
  glEnd();
end;
end;

//Aufruf

procedure Render;
var i:integer;
begin
//Der sonstige OGL Kram
//...


for i := 0 to SIZE-1 do
  RenderPixel(Pixels[i],i);


//Der sonstige OGLKram
//...
end;
So ich nehme an die Hälfte is falsch un die andere Hälfte hab ich vergessen^^
Philipp F.
  Mit Zitat antworten Zitat
Neutron

Registriert seit: 14. Mär 2006
47 Beiträge
 
Delphi 2006 Professional
 
#8

Re: [GLScene] Ein Dorf erstellen...

  Alt 17. Dez 2006, 14:47
Ahhhh.................
Und das geht mit dem TerrainRenderer in GLScene???
Oder meintest du OpenGL?... Also jetzt benutze ich gerade wie oben
schon gesagt den TerrainRenderer und dachte eigentlich da gibt es irgendeine
einfache Einstellung...

Danke aber trotzdem...
  Mit Zitat antworten Zitat
Flips

Registriert seit: 17. Feb 2005
Ort: Sankt Wendel
491 Beiträge
 
Delphi 7 Professional
 
#9

Re: [GLScene] Ein Dorf erstellen...

  Alt 17. Dez 2006, 14:56
Gut dann hab ich das überlesen

Naja vielleicht ist der Code trotzdem für jemanden gut
Philipp F.
  Mit Zitat antworten Zitat
Benutzerbild von Hirnsausen
Hirnsausen

Registriert seit: 12. Mär 2006
Ort: 18°00'33.64" N, 76°46'50.73" W, elev 344 ft
64 Beiträge
 
Delphi 7 Personal
 
#10

Re: [GLScene] Ein Dorf erstellen...

  Alt 17. Dez 2006, 15:40
Ja, für mich ist der Code gut! Auch ich will mal bald mit solchen 3D-Sachen anfangen, aber noch nie zuvor gemacht!

Ich erstelle Dörfer (und anderes) mit POV-Ray, vieleicht gibt es ja auch da Konvertierungsmöglichkeiten zu 3DS.
Vielen Dank für Eure Zeit, Absicht, Mühe und Ideen.

Sven
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz