Как зайти в Даркнет?!
25th January, 01:11
94
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
1228
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
1029
0
Очень долго работает Update запрос Oracle
27th January, 09:58
969
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
959
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
995
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1782
0
период по дням
25th October, 10:44
4001
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3775
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4661
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4442
0
Помогите пожалуйста решить задачи
24th November, 23:53
6159
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4393
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4442
0
Метода Крамера С++
23rd October, 11:55
4356
0
помогите решить задачу на C++
22nd October, 17:31
4040
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4533
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2643
0
Отображение 100 плавающих кубов с помощью DirectX или OpenGL
Я хотел бы отобразить 100 плавающих кубов, используя DirectX или OpenGL .
Я ищу либо некоторый образец исходного кода, либо описание техники. У меня есть проблемы с получением более одного куба для правильного отображения.
Я прочесал сеть для хорошей серии учебников, и хотя они говорят о том, как сделать 3D примитивов , то , что я не могу найти, - это информация о том, как сделать большое количество 3D примитивов- cubes, spheres, pyramids и так далее.
Вы говорите, что у вас достаточно проблем с отображением одного куба... так что я не уверен, есть ли у вас один, чтобы показать или нет.
В основном... поместите свой код для написания Куба в одну функцию, а затем просто вызовите эту функцию 100 раз.
void DrawCube()
{
//code to draw the cube
}
void DisplayCubes()
{
for(int i = 0; i < 10; ++i)
{
for(int j = 0; j < 10; ++j)
{
glPushMatrix();
//alter these values depending on the size of your cubes.
//This call makes sure that your cubes aren't drawn overtop of each other
glTranslatef(i*5.0, j*5.0, 0);
DrawCube();
glPopMatrix();
}
}
}
Это основная схема того, как вы могли бы сделать это. Если вы хотите что-то более эффективное, загляните в списки отображения как-нибудь, как только вы поймете основы :)
Просто используйте glTranslatef (или эквивалент DirectX), чтобы нарисовать куб, используя тот же код, но перемещая относительную точку, где вы его рисуете. Может быть, есть лучший способ сделать это, хотя я довольно новичок в OpenGL. Обязательно установите свою точку зрения так, чтобы вы могли видеть их все.
Да, если бы Вы были эффективны, вы бы бросили все в тот же буфер вершин, но я не думаю, что рисование 100 кубов вытеснит любые GPU, произведенные за последние 5 лет, поэтому вы должны быть в порядке, следуя предложениям выше.
Напишите базовый проход через вершину shader, затеняя, как вы хотите, пиксель shader. Либо передайте мировую матрицу и сделайте перевод в вершину shader, либо просто вычислите положение вершин мирового пространства на стороне CPU (сделайте это, если ваши Кубы будут оставаться неподвижными).
Вы можете получить фантазии и сделать геометрия инстансы и т. д., а просто получить основы первый.