Шейдеры из GTA 4

Для экспериментальных разработок и тем "я нашел чужой исходник, почему он не работает?"

Re: Шейдеры из GTA 4

Сообщение PetkaGtA 24 сен 2011, 22:58

В 3ds max есть Vertex Paint Tool(вот немного о ней http://avatars.imvu.com/shop/includes/i ... id=2225850) и нормал мапинг работает и лайтмапинг заодно можно будет попробовать подключить блэндинг
как оказалось в GTA4 100 шейдеров готово 13 и то последний пока только доделываю самое интересное что все требуют 3-ю шейдерную модель хотя некоторые можно было сделать и на 1-й в общем когда сделаю все выложу демку и сами шейдеры. Neodrop, да именно так
PetkaGtA
UNIт
 
Сообщения: 81
Зарегистрирован: 09 сен 2010, 10:05

Re: Шейдеры из GTA 4

Сообщение Neodrop 24 сен 2011, 23:14

Уф... x_x
Хотелось бы хоть немного знаков препинания, а то вас, мой друг, читать крайне сложно. @-)
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Шейдеры из GTA 4

Сообщение gnoblin 25 сен 2011, 00:11

Тогда может речь про подкраску вертексным цветом? :)
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Шейдеры из GTA 4

Сообщение PetkaGtA 25 сен 2011, 19:44

gnoblin писал(а):подкраску вертексным цветом? :)

да.
PetkaGtA
UNIт
 
Сообщения: 81
Зарегистрирован: 09 сен 2010, 10:05

Re: Шейдеры из GTA 4

Сообщение Guyver 26 сен 2011, 07:29

PetkaGtA писал(а):я не очень разбираюсь в векторах и mul(Tex2D,Float3) я вывел не просто ради смеха потому что там есть dp3 что значит некоторая функция с matrix1x3 ....


у меня немного замешательство ... я затрудняюсь сказать ..

кароче скалярное произведение векторов ... это когда вектор на вектор = число !!
вектрное произведение это когда вектор на вектор = вектор

dp3 итить его мать .. это сокращённо DotProduct ... что в переводе на наш - скалярное произведение
mul vec3, vec3 это как раз векторное произведение ... (круто что совпал синтаксис CG и АСМ видях ... не то что этот злой dp3)

в CG в синтаксисе есть такая штука dot() ... это аналог dp3 в асме


исходя из этого всего я делаю вывод что у вас проблемы с базовыми знаниями ... рановато вам шейдеры ГТА переводить ...
и кстати там насколько помню убершейдеры .. а следовательно вы воду в ступе толочете.
Xcombat: 3D шутер на летающих тарелках!
Аватара пользователя
Guyver
UNIверсал
 
Сообщения: 392
Зарегистрирован: 21 июл 2010, 08:04
Откуда: Челябинск

Re: Шейдеры из GTA 4

Сообщение PetkaGtA 26 сен 2011, 17:11

Guyver писал(а):dp3 итить его мать .. это сокращённо DotProduct ... что в переводе на наш - скалярное произведение
mul vec3, vec3 это как раз векторное произведение ... (круто что совпал синтаксис CG и АСМ видях ... не то что этот злой dp3)

ну во первых dp3(ps) в переводе с asm на HLSL это dot(vector,vector)(что-то я про него и не вспомнил) или mul(vector,vector)(о чем я и толкую) спасибо конечно.
Guyver писал(а):и кстати там насколько помню убершейдеры .. а следовательно вы воду в ступе толочете.

и что это меняет там несколько типов прорисовки я пока делаю deffered так как это все вместе но освещение будет просчитываться в другом шейдере.
ну и я все-таки узнал что же это за текстура пунктира,(это что-то вроде лода для альфы (или как-то так)).
PetkaGtA
UNIт
 
Сообщения: 81
Зарегистрирован: 09 сен 2010, 10:05

Re: Шейдеры из GTA 4

Сообщение PetkaGtA 27 сен 2011, 08:00

все таки разобрался с этим пунктиром как оказалось это баговый кутаут но буду надеяться я эту фигню исправлю появился еще вопрос: можно ли разные пассы рендерить в разные текстуры(скриптом я так думаю) чтобы потом их соединить с помощью шейдера?
PetkaGtA
UNIт
 
Сообщения: 81
Зарегистрирован: 09 сен 2010, 10:05

Re: Шейдеры из GTA 4

Сообщение Guyver 27 сен 2011, 08:09

PetkaGtA писал(а):ну во первых dp3(ps) в переводе с asm на HLSL это dot(vector,vector)(что-то я про него и не вспомнил) или mul(vector,vector)(о чем я и толкую) спасибо конечно.


я с трудом понимаю манеру изложения ваших мыслей ...

но .. то, что я пытаюсь до вас донести ...

PetkaGtA писал(а):..dp3(ps) в переводе с asm на HLSL это dot(vector,vector) или mul(vector,vector)...

это НЕ верно ! ... там не или вовсе!

скалярное и веткроное произведение это РАЗНЫЕ вещи...

п.с. это последний мой комент в данной теме.
Xcombat: 3D шутер на летающих тарелках!
Аватара пользователя
Guyver
UNIверсал
 
Сообщения: 392
Зарегистрирован: 21 июл 2010, 08:04
Откуда: Челябинск

Re: Шейдеры из GTA 4

Сообщение PetkaGtA 27 сен 2011, 10:17

Guyver писал(а):
PetkaGtA писал(а):ну во первых dp3(ps) в переводе с asm на HLSL это dot(vector,vector)(что-то я про него и не вспомнил) или mul(vector,vector)(о чем я и толкую) спасибо конечно.


я с трудом понимаю манеру изложения ваших мыслей ...

но .. то, что я пытаюсь до вас донести ...

PetkaGtA писал(а):..dp3(ps) в переводе с asm на HLSL это dot(vector,vector) или mul(vector,vector)...

это НЕ верно ! ... там не или вовсе!

скалярное и веткроное произведение это РАЗНЫЕ вещи...

http://www.mvps.org/DirectX/articles/math/dot/index.htm читайте внизу зачем спорить я не понимаю
скалярное или векторное мне как то без разницы главное чтоб результат был
вот стандартный шейдер из GTA4 все таки декомпилировался не полностью(пока я не сделаю deffered lighting из gta4 ничего полностью не декомпилируется так как там выходит несколько самплеров а в юнити это сделать нельзя) но все же вот он:
Синтаксис:
Используется glsl
Shader "gta_default"
{
        Properties
        {
StippleTexture("StippleTexture", 2D) = "" {}
TextureSampler("Diffuse Texture", 2D) = "" {}
globalAnimUV0("globalAnimUV0", Vector) = (1,0,0,0)
globalAnimUV1("globalAnimUV1", Vector) = (0,1,0,0)
globalScalars("globalScalars", Vector) = (1,1,1,1)
globalScalars2("globalScalars2", Vector) = (1,1,1,1)
stencil("Stencil", Vector) = (0,0,255,0)
        }
       
        SubShader
        {

               
Cull Off
Blend SrcAlpha OneMinusSrcAlpha
Fog{
}


                CGPROGRAM
#pragma surface surf Lambert
#pragma target 2.0

   sampler2D StippleTexture;
   sampler2D TextureSampler;
   float3 globalAnimUV0;
   float3 globalAnimUV1;
   float4 globalScalars;
   float4 globalScalars2;
   float4 stencil;
                        struct Input {
                                float2 uvTextureSampler;
                                float3 texcoord1;
                                float3 worldPos;
                                float3 worldRefl;
                                float4 color : COLOR;
                        };

                        void surf (Input IN, inout SurfaceOutput o) {                          
                                float4 c0 = float4(-1, 0, 9.99999975e-006, 1);
                                float4 c1 = float4(3.99600005, 4, 0.125, 0.25);
                                float4 c2 = float4(0.5, 0, 1, 0.25);
                                float4 r0=tex2D(TextureSampler,IN.uvTextureSampler.xy);
                                r0.w *= IN.color.w;
                                r0.w *= globalScalars.x;
                                float4 r1;
                                r1.x = saturate(r0.w);
                                r1.x *= c1.x;
                                r1.y = frac(r1.x);
                                r1.z = r1.y * c1.y;
                                r1.w = frac(r1.z);
                                float4 r2;
                                r2.xy = r1.zxzw + -r1.wyzw;
                                r1.xy = c1.z * IN.worldPos.xy;
                                r1.xy = frac(abs(r1));
                                r1.xy = clamp(IN.worldPos.xy,r1.xy,-r1.xy);
                                r1.xy = r1.xy * c1.w;
                                r1.xy = r2.xy * c1.w + r1.xy;
                                r1 = tex2D(StippleTexture, r1.xy);
                                r1 = clamp(-r1.y,c0.x,c0.y);
                                clip(r1);
                                r1.xyz = c0.z + IN.worldPos;
                                r1.w = dot(r1,r1);
                                r1.w = rsqrt(r1.w);
                                r1.xyz = r1 * r1.w * c0.w;
                                o.Albedo = r0;
                                o.Alpha = r0.a;
                        }
                ENDCG
        }
}
PetkaGtA
UNIт
 
Сообщения: 81
Зарегистрирован: 09 сен 2010, 10:05

Re: Шейдеры из GTA 4

Сообщение gnoblin 27 сен 2011, 11:50

скалярное или векторное мне как то без разницы главное чтоб результат был

если их путать, результата не будет ))
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Шейдеры из GTA 4

Сообщение gnoblin 27 сен 2011, 11:51

так как там выходит несколько самплеров а в юнити это сделать нельзя)

кто сказал что нельзя семплить несколько текстур?
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Шейдеры из GTA 4

Сообщение PetkaGtA 27 сен 2011, 18:32

gnoblin писал(а):
так как там выходит несколько самплеров а в юнити это сделать нельзя)

кто сказал что нельзя семплить несколько текстур?

я в том смысле что там 4 цвета которые идут в Г-буффер(чесно говоря я не знаю как правильно реализовать его в юнити только догадываюсь(рендер текстуры,4 штуки каждая идет как Г-буффер самплер0(и т. д.))).
PetkaGtA
UNIт
 
Сообщения: 81
Зарегистрирован: 09 сен 2010, 10:05

Пред.

Вернуться в Шейдерная кузня

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1