powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / OpenGL пример кода как наложить текстуру на обычный куб
16 сообщений из 16, страница 1 из 1
OpenGL пример кода как наложить текстуру на обычный куб
    #39617128
VEugene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Огромная просьба, скиньте пример кода как наложить текстуру на обычный куб в OpenGL на Visual Basic NET. Спасибо. На других языках полно примеров но вот на VB NET не получается.
...
Рейтинг: 0 / 0
OpenGL пример кода как наложить текстуру на обычный куб
    #39617136
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VEugeneНа других языках полно примеров http://converter.telerik.com

Модератор: Тема перенесена из форума "Visual Basic".
...
Рейтинг: 0 / 0
OpenGL пример кода как наложить текстуру на обычный куб
    #39617154
VEugene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, переводит "паршиво" те участки которые очень нужны!
...
Рейтинг: 0 / 0
OpenGL пример кода как наложить текстуру на обычный куб
    #39617165
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VEugene,
Давай что нашел. На любом ЯП.
...
Рейтинг: 0 / 0
OpenGL пример кода как наложить текстуру на обычный куб
    #39617184
VEugene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,
http://pmg.org.ru/nehe/nehe06.htm
Вот этот пример переведите пож-ста. Почти в каждой строке проблемы, особенно с загрузкой изображения как текстуры.
...
Рейтинг: 0 / 0
OpenGL пример кода как наложить текстуру на обычный куб
    #39617279
VEugene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
#include <windows.h>		// Заголовочный файл для Windows
#include <gl\gl.h>		// Заголовочный файл для OpenGL32 библиотеки
#include <gl\glu.h>		// Заголовочный файл для GLu32 библиотеки
#include <gl\glaux.h>		// Заголовочный файл для GLaux библиотеки

static HGLRC hRC;		// Постоянный контекст рендеринга
static HDC hDC;			// Приватный контекст устройства GDI

BOOL	keys[256];		// Массив для процедуры обработки клавиатуры

GLfloat	xrot;			// Вращение X
GLfloat	yrot;			// Y
GLfloat	zrot;			// Z

GLuint	texture[1];		// Место для одной текстуры

// Загрузка картинки и конвертирование в текстуру
GLvoid LoadGLTextures()
{
	// Загрузка картинки
	AUX_RGBImageRec *texture1;
	texture1 = auxDIBImageLoad("Data/NeHe.bmp");

// Создание текстуры
	glGenTextures(1, &texture[0]);
	glBindTexture(GL_TEXTURE_2D, texture[0]);

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, texture1->sizeX, texture1->sizeY, 0,
GL_RGB, GL_UNSIGNED_BYTE, texture1->data);

GLvoid InitGL(GLsizei Width, GLsizei Height)
{
LoadGLTextures();			// Загрузка текстур
glEnable(GL_TEXTURE_2D);		// Разрешение наложение текстуры
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
glClearDepth(1.0);
glDepthFunc(GL_LESS);
glEnable(GL_DEPTH_TEST);
glShadeModel(GL_SMOOTH);

glMatrixMode(GL_PROJECTION);
glLoadIdentity();

gluPerspective(45.0f,(GLfloat)Width/(GLfloat)Height,0.1f,100.0f);

glMatrixMode(GL_MODELVIEW);
}

GLvoid DrawGLScene(GLvoid)
{
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
	glLoadIdentity();
	glTranslatef(0.0f,0.0f,-5.0f);

glRotatef(xrot,1.0f,0.0f,0.0f);		// Вращение по оси X
	glRotatef(yrot,0.0f,1.0f,0.0f);		// Вращение по оси Y
	glRotatef(zrot,0.0f,0.0f,1.0f);		// Вращение по оси Z

glBindTexture(GL_TEXTURE_2D, texture[0]);

glBegin(GL_QUADS);

				// Передняя грань
glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f, -1.0f,  1.0f);	// Низ лево
glTexCoord2f(1.0f, 0.0f); glVertex3f( 1.0f, -1.0f,  1.0f);	// Низ право
glTexCoord2f(1.0f, 1.0f); glVertex3f( 1.0f,  1.0f,  1.0f);	// Верх право
glTexCoord2f(0.0f, 1.0f); glVertex3f(-1.0f,  1.0f,  1.0f);	// Верх лево

				// Задняя грань
glTexCoord2f(1.0f, 0.0f); glVertex3f(-1.0f, -1.0f, -1.0f);	// Низ право
glTexCoord2f(1.0f, 1.0f); glVertex3f(-1.0f,  1.0f, -1.0f);	// Верх право
glTexCoord2f(0.0f, 1.0f); glVertex3f( 1.0f,  1.0f, -1.0f);	// Верх лево
glTexCoord2f(0.0f, 0.0f); glVertex3f( 1.0f, -1.0f, -1.0f);	// Низ лево

				// Верхняя грань
glTexCoord2f(0.0f, 1.0f); glVertex3f(-1.0f,  1.0f, -1.0f);	// Верх лево
glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f,  1.0f,  1.0f);	// Низ лево
glTexCoord2f(1.0f, 0.0f); glVertex3f( 1.0f,  1.0f,  1.0f);	// Низ право
glTexCoord2f(1.0f, 1.0f); glVertex3f( 1.0f,  1.0f, -1.0f);	// Верх право
	
				// Нижняя грань
glTexCoord2f(1.0f, 1.0f); glVertex3f(-1.0f, -1.0f, -1.0f);	// Верх право
glTexCoord2f(0.0f, 1.0f); glVertex3f( 1.0f, -1.0f, -1.0f);	// Верх лево
glTexCoord2f(0.0f, 0.0f); glVertex3f( 1.0f, -1.0f,  1.0f);	// Низ лево
glTexCoord2f(1.0f, 0.0f); glVertex3f(-1.0f, -1.0f,  1.0f);	// Низ право

				// Правая грань
glTexCoord2f(1.0f, 0.0f); glVertex3f( 1.0f, -1.0f, -1.0f);	// Низ право
glTexCoord2f(1.0f, 1.0f); glVertex3f( 1.0f,  1.0f, -1.0f);	// Верх право
glTexCoord2f(0.0f, 1.0f); glVertex3f( 1.0f,  1.0f,  1.0f);	// Верх лево
glTexCoord2f(0.0f, 0.0f); glVertex3f( 1.0f, -1.0f,  1.0f);	// Низ лево

				// Левая грань
glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f, -1.0f, -1.0f);	// Низ лево
glTexCoord2f(1.0f, 0.0f); glVertex3f(-1.0f, -1.0f,  1.0f);	// Низ право
glTexCoord2f(1.0f, 1.0f); glVertex3f(-1.0f,  1.0f,  1.0f);	// Верх право
glTexCoord2f(0.0f, 1.0f); glVertex3f(-1.0f,  1.0f, -1.0f);	// Верх лево

glEnd();

xrot+=0.3f;			// Ось вращения X
	yrot+=0.2f;			// Ось вращения Y
	zrot+=0.4f;			// Ось вращения Z
}
...
Рейтинг: 0 / 0
OpenGL пример кода как наложить текстуру на обычный куб
    #39617280
VEugene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123, код выше.
...
Рейтинг: 0 / 0
OpenGL пример кода как наложить текстуру на обычный куб
    #39617322
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VEugenePetro123,
http://pmg.org.ru/nehe/nehe06.htm
Вот этот пример переведите пож-ста. Почти в каждой строке проблемы, особенно с загрузкой изображения как текстуры.теперь свой рабочий код с кубом Минимальный!
...
Рейтинг: 0 / 0
OpenGL пример кода как наложить текстуру на обычный куб
    #39617406
VEugene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,
Вечером скину, но мне нужен перевод только части, связанной с текстурами. У меня не куб а сложная фигура.
...
Рейтинг: 0 / 0
OpenGL пример кода как наложить текстуру на обычный куб
    #39617415
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VEugene,
Делай и показывай на кубе.
...
Рейтинг: 0 / 0
OpenGL пример кода как наложить текстуру на обычный куб
    #39617769
VEugene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123, чтото типо того... как добавить текстуры на полигоны?

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
'вначале очищаем буферы
            GL.Clear(ClearBufferMask.ColorBufferBit)
            GL.Clear(ClearBufferMask.DepthBufferBit)

            'базовые настройки просмотра
            Dim perspective As Matrix4 = Matrix4.CreatePerspectiveFieldOfView(120 * Math.PI / 180, 1, 1, 10000) 'Setup Perspective
            Dim lookat As Matrix4 = Matrix4.LookAt(cX, cY, Dist, cX, cY, 0, 0, 1, 0) 'Setup camera

            GL.MatrixMode(MatrixMode.Projection) 'Load Perspective
            GL.LoadIdentity()
            GL.LoadMatrix(perspective)
            GL.MatrixMode(MatrixMode.Modelview) 'Load Camera
            GL.LoadIdentity()
            GL.LoadMatrix(lookat)
            GL.Viewport(0, 0, GlControl1.Width, GlControl1.Height)
            GL.Enable(EnableCap.DepthTest)
            GL.DepthFunc(DepthFunction.Less)
For Row As Integer = 1 To ctY
                For Column As Integer = 1 To ctX
                     'Низ
                    GL.Begin(BeginMode.Polygon)
                    GL.Color3(Color.Red)
                    GL.Vertex3(x(0), y(0), z(0)) '1
                    GL.Vertex3(x(1), y(1), z(1)) '2
                    GL.Vertex3(x(2), y(2), z(2)) '3
                    GL.Vertex3(x(3), y(3), z(3)) '4
                    GL.Vertex3(x(4), y(4), z(4)) '5
                    GL.Vertex3(x(5), y(5), z(5)) '6
                    GL.End()

                'верх
                GL.Begin(BeginMode.Polygon)
                GL.Color3(Color.Green)
                GL.Vertex3(x(0), y(0), z(0) + h) '1
                GL.Vertex3(x(1), y(1), z(1) + h) '2
                GL.Vertex3(x(2), y(2), z(2) + h) '3
                GL.Vertex3(x(3), y(3), z(3) + h) '4
                GL.Vertex3(x(4), y(4), z(4) + h) '5
                GL.Vertex3(x(5), y(5), z(5) + h) '6
                GL.End()

                'грани

                GL.Begin(BeginMode.Polygon)
                GL.Color3(Color.Yellow)
                GL.Vertex3(x(0), y(0), z(0)) '1
                GL.Vertex3(x(1), y(1), z(1)) '2
                GL.Vertex3(x(1), y(1), z(1) + h) '3
                GL.Vertex3(x(0), y(0), z(0) + h) '4
                GL.End()

                    GL.Begin(BeginMode.Polygon)
                    GL.Color3(Color.Gray)
                    GL.Vertex3(x(1), y(1), z(1)) '1
                    GL.Vertex3(x(2), y(2), z(2)) '2
                    GL.Vertex3(x(2), y(2), z(2) + h) '3
                    GL.Vertex3(x(1), y(1), z(1) + h) '4
                    GL.End()

                    GL.Begin(BeginMode.Polygon)
                    GL.Color3(Color.Gray)
                    GL.Vertex3(x(2), y(2), z(2)) '1
                    GL.Vertex3(x(3), y(3), z(3)) '2
                    GL.Vertex3(x(3), y(3), z(3) + h) '3
                    GL.Vertex3(x(2), y(2), z(2) + h) '4
                    GL.End()

                    GL.Begin(BeginMode.Polygon)
                    GL.Color3(Color.Gray)
                    GL.Vertex3(x(3), y(3), z(3)) '1
                    GL.Vertex3(x(4), y(4), z(4)) '2
                    GL.Vertex3(x(4), y(4), z(4) + h) '3
                    GL.Vertex3(x(3), y(3), z(3) + h) '4
                    GL.End()

                    GL.Begin(BeginMode.Polygon)
                    GL.Color3(Color.Gray)
                    GL.Vertex3(x(4), y(4), z(4)) '1
                    GL.Vertex3(x(5), y(5), z(5)) '2
                    GL.Vertex3(x(5), y(5), z(5) + h) '3
                    GL.Vertex3(x(4), y(4), z(4) + h) '4
                    GL.End()

                    GL.Begin(BeginMode.Polygon)
                    GL.Color3(Color.Gray)
                    GL.Vertex3(x(5), y(5), z(5)) '1
                    GL.Vertex3(x(0), y(0), z(0)) '2
                    GL.Vertex3(x(0), y(0), z(0) + h) '3
                    GL.Vertex3(x(5), y(5), z(5) + h) '4
                    GL.End()

                    StartX = StartX + r * 2 + u
                Next Column

            Next Row

        GraphicsContext.CurrentContext.VSync = True 'Caps frame rate as to not over run GPU
        GlControl1.SwapBuffers() 'Takes from the 'GL' and puts into control
...
Рейтинг: 0 / 0
OpenGL пример кода как наложить текстуру на обычный куб
    #39617907
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VEugenePetro123, чтото типо того... как добавить текстуры на полигоны?ну дак теперь пиши
Метод ОткрытьТексуру....
...
Рейтинг: 0 / 0
OpenGL пример кода как наложить текстуру на обычный куб
    #39617920
VEugene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

Если бы мог не обращался бы на форум
...
Рейтинг: 0 / 0
OpenGL пример кода как наложить текстуру на обычный куб
    #39617941
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VEugenePetro123,
Если бы мог не обращался бы на форумпросто писать код за тебя никто не будет. Пробуй в ветке Работа.
Тут программисты или желающие ими стать.
Удачи!
...
Рейтинг: 0 / 0
OpenGL пример кода как наложить текстуру на обычный куб
    #39618042
VEugene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

Писать не нужно, нужен перевод того примера который я нашел
...
Рейтинг: 0 / 0
OpenGL пример кода как наложить текстуру на обычный куб
    #39618054
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VEugenePetro123,

Писать не нужно, нужен перевод того примера который я нашелпозови программиста.
Переведем.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / OpenGL пример кода как наложить текстуру на обычный куб
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]