0 / 0 / 0
Регистрация: 14.10.2012
Сообщений: 19
1

Отрисовка множества объектов

14.10.2012, 18:21. Показов 1441. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
знаю проблема крайне нубская и сам я далек от совершенства. Я лишь начинаю потихоньку знакомится с опенгл и программируемой 3д графикой вообще. Но пытаюсь изобразить что то типа теста для имитации/отрисовки воксельной генерируемой картинки. грубо говоря задача сводится в рамках этой темы к отрисовке н-ного количества кубов в пространстве. но дело в том что отображаются они верно лишь под некоторыми углами в остальных случаях порядок отображения относительно нового угла поворота сцены неправильный. как я понимаю отрисовка множества объектом вовсе не в том чтобы тупо отрисосывать теоретически видимые поверхности. как я понимаю нужно отрисовать лишь то что точно будет видно прямо сейчас. вопрос как это реализовывать?
Если кто то может помочь делом а не только ссылкой на учебник могу кинуть проектик.

Пишу на VC# 2008 (возможно переведу этот проект на 2010)
Вот код отвечающий за отрисовку вокселя
C#
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
        public void DrawQuadSurface(float[] p)
        {
            glBegin(GL_QUADS);
            glVertex3f(p[0], p[1], p[2]);
            glVertex3f(p[3], p[4], p[5]);
            glVertex3f(p[6], p[7], p[8]);
            glVertex3f(p[9], p[10], p[11]);
            glEnd();
        }
        public void DrawVoxel(voxel a, float sx, float sy, float sz, bool[] faces)
        {
            glColor3ub(a.r, a.g, a.b);
            float s = CVoxelScene.size;
            if (faces[0])
            DrawQuadSurface(new float[] {   sx + s, sy + s, sz - s, //TOP
                                            sx - s, sy + s, sz - s,  
                                            sx - s, sy + s, sz + s,
                                            sx + s, sy + s, sz + s});
            if (faces[1])
            DrawQuadSurface(new float[] {   sx + s, sy - s, sz + s, //BOTTOM
                                            sx - s, sy - s, sz + s,  
                                            sx - s, sy - s, sz - s,
                                            sx + s, sy - s, sz - s});
            if (faces[2])
            DrawQuadSurface(new float[] {   sx + s, sy + s, sz + s, //FRONT
                                            sx - s, sy + s, sz + s,  
                                            sx - s, sy - s, sz + s,
                                            sx + s, sy - s, sz + s});
            if (faces[3])
            DrawQuadSurface(new float[] {   sx + s, sy - s, sz - s, //BACK
                                            sx - s, sy - s, sz - s,  
                                            sx - s, sy + s, sz - s,
                                            sx + s, sy + s, sz - s});
            if (faces[4])
            DrawQuadSurface(new float[] {   sx - s, sy + s, sz + s, //Left
                                            sx - s, sy + s, sz - s,  
                                            sx - s, sy - s, sz - s,
                                            sx - s, sy - s, sz + s});
            if (faces[5])
            DrawQuadSurface(new float[] {   sx + s, sy + s, sz - s, //Right
                                            sx + s, sy + s, sz + s,  
                                            sx + s, sy - s, sz + s,
                                            sx + s, sy - s, sz - s});
        }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.10.2012, 18:21
Ответы с готовыми решениями:

Отрисовка множества квадратов
Здравствуйте, имеется квадрат состоящий из других маленьких квадратов, 32х32 или 64х64, максимум...

Отрисовка динамических объектов
У меня игрок стреляет пулями, которые надо создавать и отображать. Например, для игрока я создаю...

Отрисовка большого количества объектов
Привет, у меня проблема: при отрисовке 3000 вершин телефон уже начинает тормозить(. Вопрос: на что...

WebGL 2.0 OpenGL ES 3.0 отрисовка объектов одним вызовом с разными матрицами модели
Привет, интересуюсь таким вопросом у людей, кто пробовал реализовать подобное: У меня есть...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.10.2012, 18:21
Помогаю со студенческими работами здесь

SFML отрисовка объектов
Здравствуйте. Помогите разобраться с отрисовкой объекта. У меня есть класс игрока. Для закрепления...

Динамическая отрисовка объектов
C# , Visual Studio, Windows Forms. Стоит такая задача: нужно отрисовывать координаты мыши (то...

Динамическая отрисовка объектов
Необходимо с некой периодичностью выводить на экран прямоугольники определённого размера,...

Отрисовка объектов своего класса
Здравствуйте ! Изучаю данный Фреймворк по книге SFML game development , но всё равно возникают...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru