Deluxe
Založen: 31. 07. 2007 Příspěvky: 235 Bydliště: Oslavany
|
Zaslal: 23. únor 2014, 14:57:36 Předmět: |
|
|
Ja to zkusil podle toho tutorialu co je primo na wiki OpenGL4Net, to vypada, ze funguje: http://sourceforge.net/p/ogl4net/wiki/Tutorials/ (zkousel jsem to jen primitivne se zmnenou clear color)
Jinak krom pretizeni WndProc jeste jde udelat neco jako:
V mainu budes mit "main loop"
kód: |
using (Form1 form = new Form1())
{
form.Show();
while (form.run)
{
form.Render();
Application.DoEvents();
}
}
|
a ve formu pak ten flag run, kterej nastavis v "OnClosing nebo OnClosed na false" a metodu "Render()", kde se bude kreslit... tohle taky vypada, ze funguje. |
|
hybr1D
Založen: 02. 09. 2007 Příspěvky: 22
|
Zaslal: 25. únor 2014, 18:05:02 Předmět: |
|
|
No už to chápem ale stále mi to nejde Potreboval by som ale pomôcť s niektorými funkciami, ktoré boli v starom openGL. Napríklad ako mám s pomocou OpenGL4NET vytvoriť Quadriky? Alebo funkcie ktoré začínali "glu" napríklad gluBuild2DMipmaps, gluUnProject?
Ďakujem. |
|
micky
Založen: 28. 02. 2008 Příspěvky: 348 Bydliště: Plzeň, Praha
|
Zaslal: 25. únor 2014, 18:41:21 Předmět: |
|
|
GLU je nadstavba OpenGL, tu v OpenGL4Net (pokud vím) nenajdeš.
ad gluBuild2DMipmaps: Mnohem lepší je používat funkci glGenerateMipmap.
ad gluUnProject: Přímo v manuálu je popsán vztah, který je uvnitř použit.
Kvadriky... ono to bylo jednoduché, že GLU přímo vygenerovalo třeba kouli bez jakékoliv námahy, ale podle mě není problém si generování jednoduchých těles doprogramovat dle potřeby. _________________ https://www.bluepulsar.cz/
https://twitter.com/11thDream_Game/ |
|
hybr1D
Založen: 02. 09. 2007 Příspěvky: 22
|
Zaslal: 25. březen 2014, 11:10:40 Předmět: |
|
|
Ďakujem moc za pomoc.
Shadery už idu.
Teraz mám ale problém s glGenerateMipmap
Pozeral som nejaké tutoriály a msdn a snažil som sa namiesto gluBuild2DMipmaps použiť slGenerateMipmap ale stále mi to nejde. Nevypíše sa žiadny error ale výsledne objekty sú len biele. Keď som použil gluBuild2DMipmaps, tak to pekne texturovalo. Neviete prosím kde robím chybu?
Tu je procedurka kde načítavam textury
kód: |
protected bool LoadTextures()
{
Bitmap image = null;
byte pom = 0;
for (int i = 0; i < 2; i++)
{
string file;
if (i == 0) file = DATA.TexturePath; else file = DATA.TexturePathList;
try
{
// If the file doesn't exist or can't be found, an ArgumentException is thrown instead of
// just returning null
image = new Bitmap(file);
}
catch (System.ArgumentException)
{
MessageBox.Show("Could not load " + file + ". Please make sure that Data is a subfolder from where the application is running.", "Error", MessageBoxButtons.OK);
}
if (image != null)
{
gl.Color3d(0, 0, 0);
image.RotateFlip(RotateFlipType.RotateNoneFlipY);
System.Drawing.Imaging.BitmapData bitmapdata;
Rectangle rect = new Rectangle(0, 0, image.Width, image.Height);
bitmapdata = image.LockBits(rect, System.Drawing.Imaging.ImageLockMode.ReadOnly, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
if(i == 0)gl.GenTextures(2, DATA.texture);
// Create MipMapped Texture
gl.BindTexture(GL.TEXTURE_2D, DATA.texture[i]);
gl.TexImage2D(GL.TEXTURE_2D, 0, (int)GL.RGB, image.Width, image.Height, 0, GL.BGR_EXT, GL.UNSIGNED_BYTE, bitmapdata.Scan0);
gl.TexParameteri(GL.TEXTURE_2D, GL.TEXTURE_WRAP_S, GL.REPEAT);
gl.TexParameteri(GL.TEXTURE_2D, GL.TEXTURE_WRAP_T, GL.REPEAT);
gl.TexParameteri(GL.TEXTURE_2D, GL.TEXTURE_MAG_FILTER, GL.NEAREST);
gl.TexParameteri(GL.TEXTURE_2D, GL.TEXTURE_MIN_FILTER, GL.LINEAR_MIPMAP_NEAREST);
gl.GenerateMipmap(GL.TEXTURE_2D);
image.UnlockBits(bitmapdata);
image.Dispose();
pom++;
}
}
return (pom==2);
}
|
Tu vykreslujem otexturované obdĺžniky:
kód: |
gl.BindTexture(GL.TEXTURE_2D, DATA.texture[0]);
gl.Begin(GL.QUADS);
gl.TexCoord2f(0, 0); gl.Vertex3d(T.A.X, T.A.Y, T.A.Z);
gl.TexCoord2f(0, 1); gl.Vertex3d(T.B.X, T.B.Y, T.B.Z);
gl.TexCoord2f(1, 1); gl.Vertex3d(T.C.X, T.C.Y, T.C.Z);
gl.TexCoord2f(1, 0); gl.Vertex3d(T.D.X, T.D.Y, T.D.Z);
gl.End();
|
|
|