Проблема была в том, что в папке было две либы: dinput.lib и dinput8.lib.
Компилятор ругался на dinput.lib, и я переместил эту либу из папки. Почему-то это помогло.
Сообщений: 54
Написано 3 полезных сообщений (для 5 пользователей)
Ответ: DirectX и C++
Люди помогите, проблемка. Не могу понять почему, когда задаю значения цвета материала в DirectX, он принемает значения и округляет их, тоесть я не могу задать цвет.
Создаю куб. Делаю вершинный буфер, в котором 8 вершин. ПОтом индексный буфер, в нем все 12 треугольников.
Куб рисуется верно, но при вращении наблюдается фэйл (exe в аттаче)
Автор самоучителя создавал для каждой стороны куба по 4 вершины, а я решил сэкономить.
C кубом разобрался. Дело оказалось в отсутствии Z-буфера, отсечения и согласованности вершин (или сторон?).
Теперь другой вопрос.
У меня 2 куба. Один позади другого. Камера вращается вокруг них. Если вызывать 2 раза DrawPrimitive, они будут рисоваться поверх друг друга, или при определенных обстоятельствах задний будет перекрывать передний?
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
Ответ: DirectX и C++
ну zbuffer и нужен чтобы осуществлять проверку находится ли глубина рисуемого пикселя за глубиной уже отрисованных, если да, то не рисуется, если нет, то рисуется.
2 куба правильно загородят друг друга как их не рисуй.
правда лучше рисовать сначала передний, т.к. на пиксели, которые загородятся им у заднего, не надо будет считать шейдер/делать выборки.
такая сортировка может давать нехилый прирост, я рендерил лес когда - без сортировки было около 8 фпс (сотни тысяч деревьев), с сортировкой - 40.
а если объекты должны быть полупрозрачными то их по-любому придётся сортировать наоборот от задних к передним.