|
09.09.2014, 01:00
|
#346
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: [TrueHorror] - разработка
переписал на d3d9 - там точно также =)
|
там стейты надо менять
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
ты точно уверен что там w записывается не как-нибудь
|
нет, такого быть не может
я вообще A16B16G16R16F использую, на неё распространяется гамма коррекция?
|
вроде нет. значит что-то ещё не так делаешь.
пишешь в ту же текстуру, из которой читаешь, может?
какие именно различия наблюдаются в R/A?
|
(Offline)
|
|
09.09.2014, 02:08
|
#347
|
Мастер
Регистрация: 12.01.2009
Сообщений: 980
Написано 389 полезных сообщений (для 632 пользователей)
|
Ответ: [TrueHorror] - разработка
Сообщение от Samodelkin
upd:
всё я разобрался - надо было фон в белый цвет очищать просто
|
Решил ssao повторить и там в рендер таргете по умолчанию альфа в белый цвет очищалась, а rgb в черный. Когда в следующем проходе я брал rgb значения чёрный цвет по краям объекта считался за препятствие, а если брал альфу то там белый цвет как и положено считался бесконечно далеким.
Кстати в общем и без нормалей получается неплохой ssao, только нужно еще размывать его немного - там алиасинг сильный, завтра доделаю.
Я еще в RenderMonkey не могу MRT найти как сделать - приходится лишний проход делать, и сложно оценить производительность. Нужно потом уже на d3d еще раз собрать.
|
(Offline)
|
|
09.09.2014, 02:36
|
#348
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: [TrueHorror] - разработка
а, это ж: блендинг выключай и ZEnable = false
|
(Offline)
|
|
09.09.2014, 15:48
|
#349
|
Дэвелопер
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
|
Ответ: [TrueHorror] - разработка
Кароч, ссао пока отложил и занялся более важными делами. Сделал нормальную настройку в меню. Все сохраняется в конфиг и без багов.
И да поправил чувствительность мыши - теперь норм настраивается.
2Mr_F_ как ты вытаскивал нормали из макса через максскрипт? а то в ручную вычисленные нормали кал - я уже понял .
__________________
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
09.09.2014, 16:47
|
#350
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: [TrueHorror] - разработка
2Mr_F_ как ты вытаскивал нормали из макса через максскрипт?
|
getFaceRNormals даёт правильные нормали
|
(Offline)
|
|
09.09.2014, 17:29
|
#351
|
Дэвелопер
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
|
Ответ: [TrueHorror] - разработка
эт я знаю, мне интересно конкретно как зная правильные нормали вершин фейса, прикрутить их к вершинам. Если smooth group разный у двух соседних фейсов( общие вершины есть ), то и нормаль в вершине будет для каждого фейса( где находится эта вершина ) другой. Как тут быть? Делать отдельный меш( чтобы заиметь вершины в одной и той же позиции, но с разными нормалями ) для этой ситуации как-то убого получается.
__________________
|
(Offline)
|
|
09.09.2014, 17:37
|
#352
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: [TrueHorror] - разработка
ну т.к. в максе раздельно живущие позиционные/нормалевские/текстурные вертексы, то я ничего лучше не придумал, чем собирать меш по фейсам, а там где все параметры совпадают, записывать как один.
|
(Offline)
|
|
09.09.2014, 17:41
|
#353
|
Дэвелопер
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
|
Ответ: [TrueHorror] - разработка
хм. я так же делаю. ладно добавлю в проверку вершин на равенство , проверку совпадения нормалей.
__________________
|
(Offline)
|
|
09.09.2014, 18:31
|
#354
|
Мастер
Регистрация: 12.01.2009
Сообщений: 980
Написано 389 полезных сообщений (для 632 пользователей)
|
Ответ: [TrueHorror] - разработка
А размер SSAO должен быть относительный? Вот если поверхность находится на расстоянии 10 метров и затемнение распространяется на 1 метр от угла, то если подойти ближе то затемнение тоже изменяется в меньшую сторону? По идее в реале распространение света не зависит от положения камеры, с другой стороны, если камера приближается то будут появляться мелкие объекты детализации и их тоже нужно затенять, а таким большим ssao уже не затенить - всё будет монотонным.
|
(Offline)
|
|
09.09.2014, 18:38
|
#355
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: [TrueHorror] - разработка
нужно стараться чтобы радиус выгдядел ворлдспейсным и не зависел от экрана.
к сожалению, не очень реально сделать ссао с гигантским радиусом на пол экрана (огромные промахи кеша, недостаток семплов), так что будет фейково уменьшаться оно при приближении камеры вблизи.
есть такая тема как multi-resolution ssao, когда в нескольких разрешениях эффект рендерят разной частоты, помимо этого ещё слыхал о юзании мипов (автогенерированных с глубины) в зависимости от радиуса лучей в экране, вроде как последнее должно шустрее всего работать, я думаю попробовать.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
09.09.2014, 20:49
|
#356
|
Мастер
Регистрация: 12.01.2009
Сообщений: 980
Написано 389 полезных сообщений (для 632 пользователей)
|
Ответ: [TrueHorror] - разработка
Mr_F_ еще сопутствующий вопрос, вот раньше делал блюр, пинг-понг и гаусс горизонтальный/вертикальный, так вот в обоих случаях возникала пикселизация на ровных вертикальных/горизонтальных объектах, разрешение текстур для блюра практически не влияло на результат, но ставить выше 512 как-то медленно - нужно большое ядро для блюра. Билинейную фильтрацию ставил. Хотя вот на естественных объектах типа листвы, травы ничего так выглядело.
|
(Offline)
|
|
09.09.2014, 21:03
|
#357
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: [TrueHorror] - разработка
ну не знаю уж, если в лоуресе считал, значит в том и трабла, или семплы брал не со сдвигом в 1 пиксель, а ошибочно шире.
чтобы не было ступенчатости при лоурес блюре, можно попробовать шумом семплы брать, типа poisson disk, правда может из-за того же кеша и чтения оффсетов быть тормознее регулярного.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
09.09.2014, 21:16
|
#358
|
Мастер
Регистрация: 12.01.2009
Сообщений: 980
Написано 389 полезных сообщений (для 632 пользователей)
|
Ответ: [TrueHorror] - разработка
А вот например если есть две текстуры 128 и 256 и исходное изображение 1080p, первый проход делает 1080p->128 или 1080p->256 и в этот момент фильтрация может некорректно сгладить. Может попробовать так: 1080p->512->( 256<->128 )->256->512->1080p.
|
(Offline)
|
|
09.09.2014, 21:31
|
#359
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: [TrueHorror] - разработка
ну да, если ты из 1920 суёшь в 512 одной выборкой, много алиасинга вылезет, хотя на ровных поверхностях то ок должно быть.
|
(Offline)
|
|
09.09.2014, 22:46
|
#360
|
Дэвелопер
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
|
Ответ: [TrueHorror] - разработка
Теперь использую максовские нормали. В аттаче скриншоты для сравнения. Сцена осталась та же, разные только нормали.
Вот кусок кода экспорта нормалей.
fn WriteVector3 vec3 =
(
-- write vertex according to X - right, Y - up, Z - forward
cacheWriteFloat file ( vec3.x)
cacheWriteFloat file ( vec3.z)
cacheWriteFloat file (-vec3.y)
)
...
-- write faces
for f = 1 to mesh.numfaces do
(
local face = polyop_getFace mesh f
WriteFace face
if ( numTVerts != 0 ) then
WriteFace ( polyop_getTVFace mesh f )
else
WriteFace face
if (textures.count > 1) then
writeLong file ((polyop_getFaceMatID mesh f) - 1)
else
writeLong file 0
if( getFaceSmoothGroup mesh f != 0 ) then
(
local normals = meshop.getFaceRNormals mesh f
WriteVector3 normals[1]
WriteVector3 normals[2]
WriteVector3 normals[3]
)
else
(
local faceNormal = getFaceNormal mesh f
WriteVector3 faceNormal[1]
WriteVector3 faceNormal[2]
WriteVector3 faceNormal[3]
)
)
В некоторых местах стало гораздо лучше - пропала "бесконечная" глубина бампа( был как-то скрин с жестоким бампом - так вот его теперь нет ).
Но в меню какая-то наркомания. Мне больше нраицца первый вариант с рассчитанными нормалями, но оставлю максовские - там их изменить хотя бы можно.
P.S. А я смотрю вы тут без меня не скучаете
__________________
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 05:39.
|