14 Ноября 2024, 13:55:52
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Навигация по форуму







guest3d
Quest3D - Русскоязычное сообщество > Quest3D > Визуализация, Шейдеры > По поводу ShaderFX
По поводу ShaderFX
(Прочитано 14750 раз)
  [1]
Печать
Alien3D | ** | Пользователь | Сообщений: 63 | « 16 Декабря 2010, 17:27:21 »
По поводу ShaderFX |
0
Скачал с Нета этот плагин, долго мучился в освоении. Понял как применять текстуру, но незнаю как перевести всё это дело в Quest. Прошу помощи! Может кто знает уроки или мануал на русском?
Ruslan | ***** | Ветеран | Сообщений: 664 | «Ответ #1 16 Декабря 2010, 17:33:11 »
Re: По поводу ShaderFX |
1
http://guest3d.wohlnet.ru/forum/index.php?topic=426.0
Alien3D | ** | Пользователь | Сообщений: 63 | «Ответ #2 17 Декабря 2010, 17:09:26 »
Re: По поводу ShaderFX |
2
Спасибо конечно, но мне бы ещё узнать про ShaderFX в 3DS max'e. Там же визуальный принцип, так проще:) Помогите! Улыбающийся
Sqwer | ***** | Ветеран | Сообщений: 540 | «Ответ #3 17 Декабря 2010, 18:15:07 »
Re: По поводу ShaderFX |
3
там да, но код он генерит с ошибками, так что тебе придётся ручками  допиливать массивы света, переварачивать оси.

а так всё  работает без дополнительных вмешательств


1. Открой пример  в репозитории   ШейдерФХ ( располагается в той же папке где и сам плагин).
2. Скомпилируй его  с параметрами Quest3D.
3. встовляешь код в HLSL канал

типа всё
Alien3D | ** | Пользователь | Сообщений: 63 | «Ответ #4 17 Декабря 2010, 18:53:01 »
Re: По поводу ShaderFX |
4
Создаю свой код в максе добавляю в хлслобъект но теряются текстуры и нормали наружу выворачиваются, в этом случае применяю модификатор Нормали, и вроде нормально, но в квесте когда я приблежаю свет к объекту то освещение как бы освещает только зад объекта, за то в максе всё хорошо. Что делать? Неужели писать весь код в HLSLOBJECT? Есть вариант проще?
Sqwer | ***** | Ветеран | Сообщений: 540 | «Ответ #5 18 Декабря 2010, 02:28:29 »
Re: По поводу ShaderFX |
5
скрины давай , угадывать я не собираюсь.

судя по словам - нормали флипнуты (это часто происходит при  примении  отзеркальнных объектов)

попытайся   экспортнуть  обычный чайник и на нём проверить всё


я в скайпе  с 12,00 до 6,00   логин   sqwer_37
обясню в деталях если ситуация в тупик встанет
« Последнее редактирование: 18 Декабря 2010, 02:31:55 от Sqwer »
Alien3D | ** | Пользователь | Сообщений: 63 | «Ответ #6 18 Декабря 2010, 07:42:41 »
Re: По поводу ShaderFX |
6
На чайник наложил две текстуры, поверхность и бамп. Экспортирую модель в Quest (COLLADA), добавляю HLSLObject и всё, нормали выворачиваются, а текстур как и не было.
В Максе стандартные текстуры не накладывал, сразу создавал в ShaderFX. Потом приходиться отдельно клеить текстуры на HLSLObject. Смотрите скрины там всё есть. Код FX так же прикрепляю. Помогите пожалуйста, игра стоИт.
P.S. Если у меня есть созданный уровень, мне придётся разбивать всё на части и накладывать FX отдельно?

Sqwer ты скорее всего либо в Москве живёшь либо где то рядом, мне как ориентироваться во времени, по Москве?   
Я с дальнего востока, у нас на +6 часов разница. Если у вас 12 часов дня, то у нас 6 часов вечера. )

Извиняюсь, думаю что скрины показать не получиться, так как не могу загрузить, я сижу с кпк, скорость отвратительно маленькая 3.5 Кб/с 

* Чайник.fx (5.96 Кб - загружено 1989 раз.)
« Последнее редактирование: 18 Декабря 2010, 09:09:21 от Alien3D »
Sqwer | ***** | Ветеран | Сообщений: 540 | «Ответ #7 18 Декабря 2010, 13:40:42 »
Re: По поводу ShaderFX |
7
technique Complete 

   pass light1 
    {      
      VertexShader = compile vs_3_0 v(light_pos[0], light_type[0], light_dir[0]);
      ZEnable = true;
      CullMode = cw;
      ShadeMode = Gouraud;
      ZWriteEnable = true;
      AlphaBlendEnable = false;
      SrcBlend = SrcAlpha;
      DestBlend = One;
      AlphaTestEnable = FALSE;
      PixelShader = compile ps_3_0 f(light_dir[0], light_color[0], float4(light_atten1[0], light_atten2[0], light_atten3[0], 1.0), light_hotspot[0], light_falloff[0], light_type[0], light1attenType, light1coneType, light1CastShadows, 1);
   } 



CullMode = cw;
меняй на
CullMode = cсw;
Alien3D | ** | Пользователь | Сообщений: 63 | «Ответ #8 20 Декабря 2010, 13:11:41 »
Re: По поводу ShaderFX |
8
Всё получилось, спасибо! Вот только один вопрос остался: Мне надо сначала в Максе накидывать текстуры на объект, а потом в Квесте добавлять HLSLOBJECT? И есть ли уроки по ShaderFX в максе? Спасибо Sqwer!
Sqwer | ***** | Ветеран | Сообщений: 540 | «Ответ #9 21 Декабря 2010, 01:30:20 »
Re: По поводу ShaderFX |
9
Цитировать
Мне надо сначала в Максе накидывать текстуры на объек
это вопрос касательно менеджмента ресурсов - решать тебе.

Цитировать
а потом в Квесте добавлять HLSLOBJECT?
а про  Глобал Шейдер ты не слыхивал?

Цитировать
И есть ли уроки по ShaderFX в максе?
Есть, там от куда ты эту программу и качал.
есть даже серия уроков на Ютубе от разработчиков.
Alien3D | ** | Пользователь | Сообщений: 63 | «Ответ #10 23 Декабря 2010, 17:42:44 »
Re: По поводу ShaderFX |
10
Нет, про глобал шейдер я не слышал, расскажи по подробней.
RazorSoul | * | Новичок | Сообщений: 12 | «Ответ #11 14 Января 2011, 19:10:10 »
Re: По поводу ShaderFX |
11
Sqwer добрый человек, помоги пожалуста разобраться, как экспортировать шэйдер Leaf UV rotation из Shader FX? Сколько я не разбирался в шейдере -это для меня что-то абстрактное, на интуиции что-то понимаю, а толком нет.
    Ошибка в строке:
float3 input1 = TextureMap_3430.rgb; 
пишет invalid subscript rgb
тут как я понял оператору input1 присваевается значение rgb текстуры TextureMap_3430.
Тогда почему неможет определить этот самый ргб, это ж канал текстуры,
Другие шейдеры экспортировал там вроде тоже самое но работает. Непонимающий
Пробовал всавить перед этой строкой следующее:
float4 TextureMap_3430 = tex2D(TextureMap_3430Sampler, In.texCoord.xy);
шейдер начал компилироваться нормально, но при переходе в окно анимации видно что он неработает.
Sqwer | ***** | Ветеран | Сообщений: 540 | «Ответ #12 14 Января 2011, 20:54:29 »
Re: По поводу ShaderFX |
12
Цитировать
Leaf UV rotation из Shader

ты его поменял



Цитировать
    Ошибка в строке:
float3 input1 = TextureMap_3430.rgb; 
пишет invalid subscript rgb
не соответсвие  размерностей TextureMap_3430.rgb;


Цитировать
видно что он неработает.
Я не телепат,  что происходит ?   выдаёт ошибку   или результат работы не совсем такой , который ты хотел увидеть?


Если  текстура не двигается.
Цитировать
float4 TextureMap_3430 = tex2D(TextureMap_3430Sampler, In.texCoord.xy);
а надо было всавлять  вместо In.texCoord.xy     ротационные   координаты UVRotator.xy
« Последнее редактирование: 27 Февраля 2011, 15:34:09 от Sqwer »
RazorSoul | * | Новичок | Сообщений: 12 | «Ответ #13 19 Января 2011, 12:14:15 »
Re: По поводу ShaderFX |
13
Всё кажись разобрался. Улыбающийся Там целый кусок кода отсутствовал в вершинном и пиксельном шейдере. Вот вам и Shader Fx, косячит он короче. Пришлось долго "медитировать над кодом" и копипастить.
 
  [1]
Печать
 
Quest3D - Русскоязычное сообщество > Quest3D > Визуализация, Шейдеры > По поводу ShaderFX
Перейти в: