Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Facharbeit - 3D Topographie anzeigen (https://www.delphipraxis.net/60462-facharbeit-3d-topographie-anzeigen.html)

DGL-luke 7. Jan 2006 15:32

Re: Facharbeit - 3D Topographie anzeigen
 
Liste der Anhänge anzeigen (Anzahl: 1)
hm... ich hab den aus einem meiner Projekte kopiert. Aber ich werde das natürlich sofort überprüfen.

EDIT: tatsächlich... :wall:
hier das ganze in verbessert und getestet:

Delphi-Quellcode:
type Single2dArray = array of array of single;

function BuildDL(heightmap: Single2dArray; scalexy,scalez:single): integer;
var i,k,t:integer;
begin
result := glGenLists(1); //eine DL, bitte!

glNewlist(result, GL_COMPILE); //jetzt gehts los!
  t := round((length(heightmap) div 2) * scalexy);
  gltranslatef(-t,-t,0); // In die Mitte verschieben
  glbegin(gl_triangles);
  glcolor3f(255,0,0);
  for i:=1 to length(heightmap)-2 do // ich greife auch auf i-1 und i+1 zu!
    for k := 1 to length(heightmap[i])-2 do // ich greife auch auf k-1 und k+1 zu!
      begin
        //erstes dreieck
        glVertex3f(i * scalexy,    k * scalexy,    heightmap[i,k] * scalez);
        glVertex3f((i-1) * scalexy, (k) * scalexy,  heightmap[i-1,k] * scalez);
        glVertex3f(i * scalexy,    (k+1) * scalexy, heightmap[i,k+1] * scalez);
        //zweites dreieck
        glVertex3f((i-1) * scalexy, k * scalexy,    heightmap[i-1,k] * scalez);
        glVertex3f((i-1) * scalexy, (k-1) * scalexy, heightmap[i-1,k-1] * scalez);
        glVertex3f((i+1) * scalexy, (k+1) * scalexy, heightmap[i+1,k+1] * scalez);
      end;
  glend;
  glcolor3f(255,255,255);
glEndList;
end;
Im Anhang ein kleines Beispielprogramm. Benötigt dglopengl.pas.

Ravager 7. Jan 2006 15:48

Re: Facharbeit - 3D Topographie anzeigen
 
wie dem auch sei, könnma bissi runterbremsen?
ich krieg nedmal das GLScene installiert :wall:


gaanz langsam:
ich lade GLScene_v09b_Full.zip und entpacke in einen ordner
dann öffne ich delphi7/GLScene7.dpk
und drücke auf Install
Fehlermeldung: GLScene.inc fehlt
GLScene.inc ist im Source Ordner
also kopiere ich GLScene.inc von dem Source Ordner in delphi7-Ordner
und drücke auf Install
es kommt eine Meldung, dass alles installiert wurde (FMOD hab ich auch noch installiert, aber das sollte egal sein)
nach der Anleitung ( http://caperaven.co.za/gls/onlinedoc...stallation.htm ) könnten jetzt nur noch die directories fehlen
[After installing the package some files require accessability by Delphi. This is done by placing the Path to the files in the Program Options Directories Source form.]
da kapier ich aber nicht, was die von mir wollen.
Wo soll ich welche Ordner einstellen??? "Program Options Directories Source form"? keine Ahnung, wo das sein soll...

Auf jeden Fall ist die Installation so noch nicht abgeschlossen - [Fatal Error] Unit1.pas(6): File not found: 'GLScene.dcu'
was wollen die also von mir?

sorry wenn ich mich da bissi blöd stell, aber das mit dem Installieren hab ich noch nie kapiert, :mrgreen:

DGL-luke 7. Jan 2006 16:38

Re: Facharbeit - 3D Topographie anzeigen
 
Ich nehme an, dass du den ordner, in dem die glscene.pas liegt, einfach in die bibliothek aufnehmen musst.

Also In Delphi ins Mainmenu, tools->umgebungsoptionen->bibliothek, und da den entsprechenden pfad dazutun.

Ravager 7. Jan 2006 20:06

Re: Facharbeit - 3D Topographie anzeigen
 
okay, das wars... glScene ist installiert - das war ein harter Brocken :oops:

allerdings sind mir die Tutorials viel zu wenig zielgerichtet (Zeitknappheit). Ich brauche also so eine Heightmap aus dem Array, ne Kamera (die per maus + rad einstellbar ist), ne Lampe und die Möglichkeit das alles als bmp abzuspeichern.
Gerendert werden soll in einem bestimmten Bereich. Dafür ist das GLSceneViewer, oder?
Gibt es irgendwo eine Art Tutorial, das in etwa auf das hinführt und mich von Fog, Fire, Sprites, Textures, Hud, usw verschont? :mrgreen:

@TubroPascal: wo finde ich den Quellcode zu der exe - das kommt doch ziemlich genau an das hin, was ich bräuchte ^^ ?

DGL-luke 7. Jan 2006 20:14

Re: Facharbeit - 3D Topographie anzeigen
 
In Bitmap speichern sollte ganz einfach sein:

Delphi-Quellcode:
procedure SaveToBMP(Heightmap: Single2dArray; filename: string);
var bmp : TBitmap;
    i,k : Integer;
begin
bmp := TBitmap.create;
try
bmp.width := length(HeightMap);
bmp.Height := length(Heightmap[0]);

for i := 0 to bmp.width -1 do
  for k := 0 to bmp.height -1 do
    bmp.pixels[i,k] := RGB(Heightmap[i,k],HeightMap.[i,k],HeightMap.[i,k]);

bmp.savetofile(filename);
finally
bmp.free;
end;
end;
sorry wegen der formatierung ;)

turboPASCAL 7. Jan 2006 23:45

Re: Facharbeit - 3D Topographie anzeigen
 
Zitat:

Zitat von Ravager
@TubroPascal: wo finde ich den Quellcode zu der exe - das kommt doch ziemlich genau an das hin, was ich bräuchte ^^ ?

Kann ich anhängen, will den aber noch etwas umbauen...

Ravager 8. Jan 2006 01:10

Re: Facharbeit - 3D Topographie anzeigen
 
okay wär genial,


wegen saveToBMP:
ich möchte, dass ein Screenshot gespeichert wird. Also so, wie mein Anzeigeelement (GLSceneViewer?) das Bild gerade rendert (Licht, Kamera), soll es in eine datei abgespeichert werden.

Die Funktion sieht eher so aus, als ob sie ein kleines bmp erzeugt mit den Farbwerten, die das array zurückliefert... oder check ichs wieder nicht?

DGL-luke 8. Jan 2006 11:32

Re: Facharbeit - 3D Topographie anzeigen
 
jupp, genauso siehts aus ;)

zu screenshot machen in OpenGL solltest du im DelphiGL-Forum genug finden, wie das mit GLScene geht, weiss ich nicht.

turboPASCAL 8. Jan 2006 13:13

Re: Facharbeit - 3D Topographie anzeigen
 
Liste der Anhänge anzeigen (Anzahl: 2)
Bitte.
Zitat:

Zitat von Ravager
Die Funktion sieht eher so aus, als ob sie ein kleines bmp erzeugt mit den Farbwerten, die das array zurückliefert...

Kann man, muss aber nicht. ;)

Ravager 8. Jan 2006 14:11

Re: Facharbeit - 3D Topographie anzeigen
 
leute... ich kapiers ned,
Dein code läuft bei mir grad ned
Seither hab ich: Neugestartet -.-

Ich hab jetzt das gesamte GLScene gelöscht und aus der Component-Liste rausgeschmissen. Dann die neue beta-Version installiert. Keine Änderung...

Fehlermeldungen

Klassen nicht gefunden:
tglSceneViewer
tglScene
tglCadencer
tglWindowsBitmapFont
...

Außerdem werden alle möglichen dcu files nicht gefunden, wechselt aber immer
objects.dcu
vectorgeometry.dcu
...
keine Ahnung, was ich falsch mache.


==> Panik, Verzweiflung, Suizidgedanken, ...


ich werde jetzt erstmal Delphi komplett ermorden und neu installieren, dann die normale Versio (nicht beta) von GLScene so installieren wie beim letzten Mal.
Danach besauf ich mich...


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:30 Uhr.
Seite 2 von 4     12 34      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz