Войти
АртФорумОбщее

Shader Art (хвастаемся скринами) (63 стр)

Страницы: 162 63 64 65148 Следующая »
#930
(Правка: 16:47) 16:47, 20 янв. 2011

arabescА если бы)

Кcтати а как делают картинки, которые можно наносить куда угодно - проекционные текстуры ? А если много слоев ? ( Примеры NFS World, APB )


#931
17:28, 20 янв. 2011

FDsagizi
> Кcтати а как делают картинки, которые можно наносить куда угодно - проекционные
> текстуры ? А если много слоев ? ( Примеры NFS World, APB )
>
>
Скорее всего в APB\NFS это дело запекают в специальную текстуру под декали, я по крайней мере бы так делал :).

#932
(Правка: 17:37) 17:36, 20 янв. 2011

FDsagizi
Можно подмешивать к диффузу на шейдере.

#933
18:22, 20 янв. 2011

S_L_A_V_A. геморно это будет, наверное. Если только модель рендерить небольшими кусками.

#934
18:43, 20 янв. 2011

Igor'
> Скорее всего в APB\NFS это дело запекают в специальную текстуру под декали, я по крайней мере бы так делал :).

Как такое провернуть ?

Есть машина, есть у неё развертка - далее выбераем где должна быть текстура - но как потом её натянуть на развертку, стыки прочая нечесть... ?

#935
(Правка: 19:00) 18:48, 20 янв. 2011

FDsagizi,

1) Ставиш рендер в текстуру деколи
2) Рисуеш машину, в вершином шейдере в качестве координат берёш текстурные координаты развёртки * 2.0f - 1.0f( переведя предворительно к виду [-1,1]), ну и ессесно ещё понадобяться координаты вершин, это уже пихаеш в интерполятор.
3) В пиксельном шейдере проецируеш текстуру которую нужно запеч как деколь:

 float4 projCoord = mul(projectorVP,float4(In.vertex,1.0f)); 
 result = decal.Sample(nearestSampler,(projCoord.xy / projCoord.w) * 0.5f + 0.5f);
Как-то так.
PS Для правильного проецирования чтобы на противоположной стороне машины небыло дубля деколи используй тест if( dot(normal,projectorDir) > 0.0f ) { накладываем деколь }

#936
18:54, 20 янв. 2011

Если важна точность и опись геометрии, имхо лучше всего делать классическими декалями (на основе вершин машины, наносить квад, и дробить его на вершины внутри и на гранях, чтобы полностью повторить участок геометрии машины, без потери площади.
Естественно нужно расчитать и текстурные координаты, основываясь на позиции вершины относительно площади декали.

Минусы:
- дополнительный объект.
- сложно добиться качественного и быстрого просчёта геометрии для декали.

Думаю можно сделать дополнительную развёртку у машины которая не будет иметь разрывов (не считается под машиной и окна), конечно где-то будет потянуто, а где-то наоборот. И далее уже немного математики, пикаешь точку, указываешь в шейдере её как центр, указываешь градус наклона, и скейл, и далее вычисляешь текстурные координаты основываясь сделанной развёртке.
Единственное это когда тыкнешь на машину, нужно правильно вычеслить цвет из координат развёртки.

Как-то так?

#937
19:02, 20 янв. 2011

MoKa
Так точно не выйдет, по любому можно пикнуть гдето рядом с местом стыков!...

Igor'
Кажись то что нужно, посмотрим что скажут гуру!...

#938
19:04, 20 янв. 2011

MoKa, вареант провереный но увы затратный, темболее в этой ситуации так-как на машине может быть много деколей... Да и если будет растановка деколей в риал-тайме как в NFS\APB будет очень медленно работать.

#939
21:47, 20 янв. 2011

А что насчёт разделения (запечённая декаль), и динамика.
Ведь динамично, можно тупо проецировать используя матрицу проекции.
А когда заканчиваешь, запекать в текстуру.

Что бы избежать "проекции всквозь" (на другой стороне машины та же текстура), можно либо сравивать по расстоянию с центром декали, либо делать depth карту, и использовать её для сравнения.
Но проблема будет с изгибами, т.к. для правильной проекции на угол например, текстура будет тянутся.
С Дептх картой, можно запекать нормал карту, и сравнивать с вектором обзора, тем самым вычисляем вектор наклона плоскости, относительно направлению зрения камеры проекции. Используя эти данные можно смещать данные из проекционной камеры для каждого пикселя, что при точных вычислениях, можно получить возмещение потянутости на изгибах.

Нужно реализовывать, и смотреть на практике. Такой вариант проекции будет намного продуктивнее чем пересоздание декалей как было предложено изначально.

#940
(Правка: 0:55) 0:50, 22 янв. 2011
Изображение
Изображение
Изображение

Плейн - лента.
Анимация сияния на шейдере.
Для анимации в пространстве надо будет заригать ленту.
#941
(Правка: 2:36) 2:36, 22 янв. 2011

Не чувствуется "толщины"..
Имхо, у тебя слишком "артистичное" сияние, как его часто изображают. Но в реальности всё сильно отличается, вот глянь тут.
ЗЫ, и имхо, на более изгибах (когда плоскость уходит вдаль), нужен FallOff который будет усиливать сияние (но как "хорошо" будет выглядеть на картинке хз..) :)

#942
(Правка: 2:51) 2:50, 22 янв. 2011

MoKa
Да, с толщиной пока непонятки. Не плоское, наверное, проще сделать партиклами. Rim есть, работает на прозрачность норамлей параллельных камере, так смотрится более приятно.

#943
13:45, 22 янв. 2011

S_L_A_V_A
класно, только кулинг - паливо)

#944
2:28, 2 фев. 2011

Балуюсь размытием для DOF'а
dof2p | Shader Art (хвастаемся скринами)

Страницы: 162 63 64 65148 Следующая »
АртФорумОбщее