![]() |
glBMP unaufindbar...
Hi leutz,
bin gerade dabei OpenGL zu lernen. Jetzt hab ich ein Problem beim texturieren von Objekten... Mit der GLAUX.DLL klappt alles wunderbar... is bloß nen bisschen umständlich. Hab gelesen, dass glBMP da besser is... nur leider is die Homepage von Jason Allen ( ![]() Hat wohl wer noch die nötigen Dateien, oder weiß wo man sie noch downloaden kann?? Ich kann se einfach net finden... THX cya logaan |
Re: glBMP unaufindbar...
Liste der Anhänge anzeigen (Anzahl: 1)
Ich will mal nett sein :-D !!!
|
Re: glBMP unaufindbar...
Ah!! Geil!!
Vielen vielen Dank :corky: cya logaan |
Re: glBMP unaufindbar...
Nichts zu danken! (Oder doch?) :wink:
|
Re: glBMP unaufindbar...
Mist.. hilft mir leider nichts..
glBMP verwendet die OpenGL 1.2 Lib... und die wiederum läuft nur mindestens auf Delphi 4... Wo bekomm ich denn jetzt möglichst Kostengünstig ne gute Delphi Version über 4 her?? (Delphi 7 Trial geht bei mir irgendwie net...) cya logaan |
Re: glBMP unaufindbar...
Sorry, da kann ich dir nicht weiter helfen. :(
|
Re: glBMP unaufindbar...
glbmp verwendet opengl1.2 ? Das ist mir zwar neu, aber nagut:
Es gibt eine Althernative, Texturen zu laden... will man z.b. BMPs und JPEG's laden, dann kann man sich auch ne eigene Prozedur schreiben:
Delphi-Quellcode:
Diese Prozedur kann man denn so aufrufen:
procedure loadtexture(var textur : integer; filename:string);
var bitmap : tbitmap; jpg : tjpegimage; texdata : array[0..262143] of Trgbpoint; r,g,b : byte; x,y : integer; tempint : integer; xwidth, ywidth : integer; begin bitmap := tbitmap.create; if (ExtractFileExt(filename) = '.jpg') or (ExtractFileExt(filename) = '.jpeg') then begin jpg := tjpegimage.Create; jpg.LoadFromFile(filename); jpg.CompressionQuality := 100; try bitmap.assign(jpg); finally jpg.free; end; end else begin if ExtractFileExt(filename) = '.bmp' then begin bitmap.loadfromfile(filename); end; end xwidth := bitmap.Width; ywidth := bitmap.Height; for x := 0 to xwidth-1 do begin for y := 0 to ywidth-1 do begin tempint := bitmap.canvas.pixels[x,y]; r := TempInt and $FF; g := (TempInt shr 8) and $FF; b := (TempInt shr 16) and $FF; texdata[((ywidth-1)-y)*xwidth+x, 0] := r; texdata[((ywidth-1)-y)*xwidth+x, 1] := g; texdata[((ywidth-1)-y)*xwidth+x, 2] := b; end; end; bitmap.free; glGenTextures(1, @textur); glBindTexture(GL_TEXTURE_2D, textur); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_linear); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_linear); glTexImage2D(GL_TEXTURE_2D, 0, 3, xwidth, ywidth, 0, GL_RGB, GL_UNSIGNED_BYTE, @texdata); end;
Delphi-Quellcode:
Dabei ist "tex" vom Typ gluint und alles andere verhällt sich genau so, als wenn man die glaux-lib verwendet...
loadtexture(tex,'Textur.jpg');
allerdings könnten einige wichtige Prozeduren / Funktionen fehlen, weshalb man sich die extra aus der Opengl32.dll holen muss:
Delphi-Quellcode:
(hoffe, es sind nicht zu viele Fehler im Beitrag ... alles auf die schnelle zusammengeschweißt...)
procedure glGenTextures(n: integer; textures: Pinteger); stdcall; EXTERNAL opengl32;
procedure glBindTexture(target: uint; texture: integer); stdcall; EXTERNAL opengl32; procedure glTexParameteri(target, pname: uint; param: integer); stdcall; EXTERNAL opengl32; procedure glTexImage2D(target: uint; level, internalformat: integer; width, height: integer; border: integer; format, atype: uint; Pixels:Pointer); stdcall; EXTERNAL opengl32; Ps: falls du immernoch eine günstige Delphi-Version > v3 suchst, denn bitte mich per E-Mail ganz freundlich drum, ob ich dir den Dl-Link für die Delphi 6 Personal (war mal gratis) ausgraben kann :-) Edit: Jippie! Beitrag nummer 100 :dp: :dancer2: :dancer: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:04 Uhr. |
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