ksacvet777
> Просто не допускай , чтобы камера залетала далеко.
Так не хотел использовать этот способ но пришлось. Теперь двигаю мир к камере а не камеру в мир и всё нормально. Только у меня вопрос, ведь у меня в игре не один кораблик летать будет, другие корабли трясти не будет?
kroonk
О чем давно тут втираем? Камера в (0,0,0), из координат мира вычитается ее физическая позиция.
Для каждого кораблика (камеры) повторяешь тоже самое
Кстати задам ещё вопрос, не по теме правда, но он небольшой что-бы форум не засорять тут напишу. Я сделал планету размером 12000000 и вот что получилось:
Это никак не исправить?
kroonk
По рисунку затрудняюсь сказать. Вообще возможны проблемы с Z-buffer при большом диапазоне, как решать - уже писал
Расстояние near должно быть не меньше примерно 1/10000 размеров планеты, иначе начинаются всякие эффекты
Проблема в том что матрица проекции линейно преобразует диапазон near-far к 0-1 и 1/z пишется в Z-buffer, где всего 32 бита максимум
На большом расстоянии уже не хватает точности отличить ближнее и дальнее, у тя местами рисуется изнанка обратной стороны шара
Двигай zNear к ближайшей к камере точке планеты, а zFar к дальней (или чуть дальше её центра). Перед рендером каждой планеты очищай z-буффер.
Neptune
> Перед рендером каждой планеты очищай z-буффер.
Сортировать вручную?
Neptune
> Перед рендером каждой планеты очищай z-буффер
Накладно так. Надо юзать стенсиль буффер, в уже помеченные пикселы не писать
А как вы сделали вид с поверхности планеты? Там нет проблемы с диапазоном Z ?
Конечно сортировать, чтоб рендерить от дальних к ближним. Когда появятся атмосферы, кольца и прочие прозрачные вещи, это будет очень важно.
Aslan
> Накладно так. Надо юзать стенсиль буффер, в уже помеченные пикселы не писать
Да что там накладного. Очистка буффера занимает микросекунду, если не меньше. Если хочется оптимизировать, можно перед очисткой выставить viewport по границам изображения планеты на экране.
Теперь с отрисовкой багов нет а вот с глубиной:
тут как я понял надо очистить Z-Буффер, как это сделать?
kroonk
ты как вообще пишешь на DX?
Neptune
ну или так с viewport - нормально
если множество мелких планет
Aslan
> ну или так с viewport - нормально
> если множество мелких планет
Для мелких (далёких) планет z-буффер и не нужен, достаточно рисовать их от дальних к ближним без z-теста (алгоритм художника). kroonk, вычисляй максимальный размер рельефа планеты, и если он меньше одного пикселя, вообще не используй z-буффер для такой планеты.
И ещё один небольшой вопрос задам. У меня корабль находиться в точке которая обозначается вектором если к этому вектору прибавить или отнять какое-то число то на прибавление или отнимание более маленького числа перемеменная перестаёт реагировать. Как это можно исправить?
kroonk
На прошлой странице же ответили
kroonk
причем тебе это говорят на протяжении всех 6-ти страниц...
Тема в архиве.