![]() |
Ответ: Имитация водной поверхности.
используй occlusion queries. вроде бы они уже есть в ксорсе... спроси Сквида.
|
Ответ: Имитация водной поверхности.
OQ еще нет.
Дешевле рисовать вообще все квадратики, чем пытаться понять, видна вершина или нет. Тем более, используя для этого З-буфер о_О |
Ответ: Имитация зед-буфера.
Цитата:
Самый простой способ займеть буфер глубины для какого-то отдельного меша: 1.Наложить на меш шейдер, как в "первых шагах" только в пиксельном писать цветом расстояние от камеры до текущего пикселя. 2.Поставить xSetBuffer(mydepthbuffer); 3. xRenderEntity(myMesh); 4. xSetBuffer(BackBuffer()); 5. Выключить шейдер. Так? Самый простой способ получить какой-то буфер. Отрендрить в картинку сцену с включенным xWireframe(true); Потом для спроецированных координат моей вершины читать картинку в соответсвующем месте и если пиксель не черный, значит можно рисовать квадратик? |
Ответ: Имитация водной поверхности.
Цитата:
Цитата:
уже я говорил про OQ, а если их нет, то Сквид сказал что дешевле рисовать все точки. если будешь рисовать точки после отрисовки загораживающих объектов, видюха автоматически не будет обрабатывать загороженные пиксели. в плане вертексов квадратики малонапряжные, так что не стоит городить тормознющие проверки, чтобы их отсеять. в плане кол-ва вызовов отрисовки (отдельных объектов), много квадратиков = проблема, которая решается инстансингом (в ксорсе есть пример). |
Ответ: Имитация водной поверхности.
Я какбэ не игру писать начал :) Подразумевается, что будет видно адин меш и фпс даже 15 будет вполне нормальным :)
|
Ответ: Имитация водной поверхности.
я не знаю в каком приложении нужен искуственно пониженый чтением пикселей из текстур фпс ))
|
Ответ: Имитация водной поверхности.
В маем, хотя фпс низким врядли будет. Ибо пискселей будет читаться всего несколько тыщь причем на лок буфере.
|
Ответ: Имитация водной поверхности.
dsd,
А это не важно сколько пикселей ты читаешь, хоть все хоть два - текстура перегоняется целиком, от этого и тормоза. |
Ответ: Имитация водной поверхности.
Это все здорово, что оно лагать будет, лучше мне скажите че оно падает при xDrawImage() :(
А может можно в вершинном шейдере писать в цвет вершины флаг видимости точки? Или эти данные обратно в хорс не передадутся? оффтоп: если в кодеблокс открыт xors3d.h, то функции хорса будут появлятся списком как в Visual Blitz. Не слишком очевидная зависимость :-D p.s. На сфере с 32 чего там, выдает 130 фпс. Шмертельные лаги, я ф такой пичали :( а с 64 так вообсче 60 фпс всего. Чорт побери!!! А с 128 так вообще всего 40, этого мало что бы вертексами подрыгать мышкой :((( |
Ответ: Имитация водной поверхности.
При xCameraProject (camera,x1,y1,z1)
ProjectedX() - пишется x точки на экране ProjectedY() - пишется y точки на экране ProjectedZ() - пишется значение лежащее в (0,1) Из непроверенных источников мне стало известно, что и z-buffer имеет значение в подозрительно похожем интервале (0,1). Это совпадение? И если нет, то как преобразовать это значение в расстояние от камеры до отрисованного видеокартой пикселя? |
Ответ: Имитация водной поверхности.
Зачем приобразовывать, если есть функция просчёта дистанции между двумя точками в 3ёх мерном пространстве?
|
Ответ: Имитация водной поверхности.
Цитата:
|
Ответ: Имитация водной поверхности.
Ладно, что туда пишется? Ведь явно это значение зависит от расстояния между точкой и камерой.
|
Ответ: Имитация водной поверхности.
Цитата:
|
Вопрос по шейдеру рисующему расстояние от камеры до пикселей.
![]() Код:
float4x4 matrixWorldViewProj : MATRIX_WORLDVIEWPROJ; // матрица итоговая То что линии на модели рисуются паралельно экрану радует. Но я ожидал нечто более близкое к градиенту или так и должно было получиться? Теперь основной вопрос. Будет ли расстояние которое я записал цветом в шейдере равным расстоянию между видимой вершиной и камерой в хорсе? |
Часовой пояс GMT +4, время: 21:24. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot