private void Form1_Load(object sender, EventArgs e) { Glut.glutInit(); Glut.glutInitDisplayMode(Glut.GLUT_RGB | Glut.GLUT_DOUBLE | Glut.GLUT_DEPTH); Il.ilInit(); Il.ilEnable(Il.IL_ORIGIN_SET); Gl.glClearColor(0, 0, 0, 1); Gl.glViewport(0, 0, AnT.Width, AnT.Height); Gl.glMatrixMode(Gl.GL_PROJECTION); Gl.glLoadIdentity(); Glu.gluPerspective(45, (float)AnT.Width / (float)AnT.Height, 0.1, 200); Gl.glMatrixMode(Gl.GL_MODELVIEW); Gl.glLoadIdentity(); Gl.glEnable(Gl.GL_DEPTH_TEST); Gl.glEnable(Gl.GL_NORMALIZE); Gl.glEnable(Gl.GL_LIGHTING); Gl.glEnable(Gl.GL_LIGHT0); float[] ambience = { 0.3f, 0.3f, 0.3f, 1.0f }; // Цвет мирового света float[] diffuse = { 0.5f, 0.5f, 0.5f, 1.0f }; // Цвет позиционного света // Чтобы установить мировое освещене, нужно передать OpenGL наши массивы. // OpenGL даёт нам возможность использовать несколько источников света. Общее количество // источников зависит от переменной GL_MAX_LIGHTS. Для первого используемого источника будем // использовать дефайн OpenGL GL_LIGHT0. После указания используемого источника передаём // OpenGL флаг говорящий, что мы устанавливаем значение ambience, и массив ambience-цветов. // Точно то же делаем с diffuse и GL_DIFFUSE. // Устанавливаем цвет рассеянного цвета (без направленного света) Gl.glLightfv(Gl.GL_LIGHT0, Gl.GL_AMBIENT, ambience); // И диффузный цвет (цвет света) Gl.glLightfv(Gl.GL_LIGHT0, Gl.GL_DIFFUSE, diffuse); Gl.glLightfv(Gl.GL_LIGHT0, Gl.GL_POSITION, _lightPos); Gl.glEnable(Gl.GL_COLOR_MATERIAL); var texture = new TexturesForObjects(); texture.LoadTextureForModel(@"face.jpg"); texIdFace = texture.GetTextureObj(); texture.LoadTextureForModel(@"grass.jpg"); texIdGround = texture.GetTextureObj(); texture.LoadTextureForModel(@"material.jpg"); texIdMaterial = texture.GetTextureObj(); texture.LoadTextureForModel(@"chest.jpg"); texIdChest = texture.GetTextureObj(); texture.LoadTextureForModel(@"torso.jpg"); texIdTorso = texture.GetTextureObj(); texture.LoadTextureForModel(@"metal.jpg"); texIdPress = texture.GetTextureObj(); RenderTimer.Start(); }