Model a OpenGL

0

Witam,

chcĘ wykorzystac model otexturowany w OpenGL. W jaki sposob mozna to wykonac? Jest jakies rozszerzenie pliku lub rozszerzenie OpenGL do takiej operacji? chcĘ wprowadzic ten model w innym jezyku asm.

Dziekuje za wszelka pomoc.

0

W ostatecznosci jedynie uzyc bede musial recznego sposobu ale czy nie ma jakiegos rozszrzenia?

0

Zależy w jakim formacie jest model/za pomocą jakiego programu jest stworzony. Pamiętam, że na sourceforge były jakieś biblioteki OpenGL do ładowanie modeli w pewnych formatach. Zajrzyj - może będzie.

0

tworzony w blenedrze ale export do 3ds jest oraz do innych formatow. Nie widzialem tam bibliotek.

0

Cos jest, bede musial skleic. Dzieki za starania.

Pozdro

0

jak wies jak narysowac trojkat to tylo to ci wystarczy reszta to zapisanie do pliku wierzcholkow i innych rzeczy zobacz cezet.host.k/glArraySelection.pas nie wiem czy i pomoze zawsze mozesz do pliku tekstowego takie rzeczy zapisywac pozniej je do tablicy z wierzcholami wczytavc i do tablicy z koordynatami tekstur pozniehj tylko ryujesz
Patrz na przyklad ten co podalem
arrays : array of
array of tinasmcoord; nasze wspolrzedne
face : array of tngasface;

type tngasface=record
//newmatrix : boolean;
textureindex : integer;
matrix : tmatrixtype;
usetex : boolean;
ambient : array[0..3] of single;
specular : array[0..3] of single;
diffuse : array[0..3] of single;
shine : single; //if shine = 560.7
bindmaterial : boolean;
//changematrix : boolean;
end;

type tinasmcoord=record
normal3f : t3dpoint;
texcoord2f : textpoint;
vertex3f : t3dpoint;
end;

rysowanie to petla

procedure DrawglArraySelection(Model            : tglArraySelectionModel); overload;
var
i,j,n   : integer;                 // x cos / y sin
FACECENTERPOINT : t3dpoint;

begin

if model.loadedtex = true then glbindtexture(GL_TEXTURE_2D,model.texture);

for i:=0 to high(model.face) do
begin
if length(model.textures) > 0 then
glbindtexture(GL_TEXTURE_2D,model.textures[model.face[i].textureindex]);

matrixtoglenable(model.face[i].matrix); to wlacza glbegin 

for j:=0 to high(model.arrays[i]) do
begin
if
(model.arrays[i][j].normal3f.x = 0) and
(model.arrays[i][j].normal3f.y = 0) and
(model.arrays[i][j].normal3f.z = 0) then
glnormal3f(0,0,1)
else
glnormal3fv(    @model.arrays[i][j].normal3f       );

  //}
gltexcoord2fv(  @model.arrays[i][j].texcoord2f     );
glvertex3fv(    @model.arrays[i][j].vertex3f       );
end;

glend();

end; //eof face

end;

nie wiem czy pomoze :U

0

Wiem jak narysowac ,lecz chcialem wykonac tu po prostu zaladowanie modelu by nie bawic sie tamtym bo wiadomo nie bedzie to jeden plik ;p. No i do tego kompresja pliku.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0