.[ ČeskéHry.cz ].
Shadery v C#
Jdi na stránku Předchozí  1, 2
 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
Deluxe



Založen: 31. 07. 2007
Příspěvky: 235
Bydliště: Oslavany

PříspěvekZaslal: 23. únor 2014, 14:57:36    Předmět: Odpovědět s citátem

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.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
hybr1D



Založen: 02. 09. 2007
Příspěvky: 22

PříspěvekZaslal: 25. únor 2014, 18:05:02    Předmět: Odpovědět s citátem

No už to chápem ale stále mi to nejde Sad 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.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
micky



Založen: 28. 02. 2008
Příspěvky: 348
Bydliště: Plzeň, Praha

PříspěvekZaslal: 25. únor 2014, 18:41:21    Předmět: Odpovědět s citátem

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/
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
hybr1D



Založen: 02. 09. 2007
Příspěvky: 22

PříspěvekZaslal: 25. březen 2014, 11:10:40    Předmět: Odpovědět s citátem

Ď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();
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
hybr1D



Založen: 02. 09. 2007
Příspěvky: 22

PříspěvekZaslal: 25. březen 2014, 21:10:08    Předmět: Odpovědět s citátem

Tak problém vyriešený. Som to spúšťal na starom notebooku, kde to grafická karta nepodporuje Smile Na novej grafike to už ide dobre.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy Časy uváděny v GMT + 1 hodina
Jdi na stránku Předchozí  1, 2
Strana 2 z 2

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna