• Добро пожаловать на Quest3D - Русскоязычное сообщество.
 

Шейдеростроение с уклоном в Q3D (для начинающих)

Автор Const_47, 30 ноября 2008, 00:01:27

« назад - далее »

BROTHERMECHANIC

Привет.
Посмотрел урок с табуреткой в невесомости, ну ты круто кубмапу подключил, рушишь стереотипы!
Но ясности просмотр не внес, потому что большая часть кода шейдера для меня,
будто незнакомые английйские слова - понимаю что-то а что именно - незнаю,
особенно строки в вертексном шейдере.
вот этот-же шейдер с моими монипуляциями.

И еще вопрос: у тебя получалось сделать шейдер с Normals map в пространстве обьекта?
У меня никак не выходит.

BROTHERMECHANIC

Я оправдал звание
ЦитироватьВЕЛИКИЙ ШЕЙДЕРОПИСЕЦ
!
Слепил в миле простенький шейдер "UV_Choser" в помощь новичкам вроде меня, прописал нем функцию выбора UV Set.

Как в
bool Math_color_conditional_1_condition = false;
сделать возможность менять false-true чв UI матэдитора квеста (ставить галочку). Прикрепил "Condition"

Const_47

&Brothermechanic

Поищи инфу о векторах и матрицах в 3D графике, ну и вообще о векторах и матрицах :))) Я думаю что код вершинного шейдера станет понятнее.

В пространстве обьекта это как? В локальных координатах?

Я использовал нормал мап в World, View, и Tangent space,
смотря для чего мне это нужно, для какого двига, и какая разновидность нормал мапинга мне нужна.

В Квесте точно есть что то типа комбо для UI матэдитора, щас не помню, доберусь к дому посмотрю. Можеш временно для этой цели использовать что то типа такого

float BOOL : CHANNELVALUE0 <
    string UIWidget = "slider";
    float UIMin = 0.0;          //Мин значение
    float UIMax = 1.0;          //Макс значение
    float UIStep = 1.0;        //Шаг
    string UIName =  "false-true";
> = 0.0; 
   


Const_47

&Brother

О!!!По поводу нормалмап. Я кажеться понял о чем это ты. В смысле - если нормалмап запекли в в objectSpace?

Const_47

#19
Посмотрел на 3UV :)))

Попытайся так

struct App2vert
{
   float3 position : POSITION;
   float4 texcoord0 : TEXCOORD0;
   float4 texcoord1 : TEXCOORD1;
   float4 texcoord2 : TEXCOORD2;
   float4 texcoord3 : TEXCOORD3;
};

struct Vert2frag_out
{
   float4 hpos : POSITION;
   float4 tex_coord0 : TEXCOORD0;
   float4 tex_coord1 : TEXCOORD1;
   float4 tex_coord3 : TEXCOORD2;
   float4 tex_coord4 : TEXCOORD3;
   float3 position : TEXCOORD4;
};

Vert2frag_out vertex_main(
   App2vert vs_in)
{
   Vert2frag_out vs_out;
   float4 position = float4(vs_in.position, 1);
   vs_out.hpos = mul(position, __object_to_ndc);
   vs_out.position = mul(position, __object_to_world).xyz;
   vs_out.tex_coord0 = vs_in.texcoord0;
   vs_out.tex_coord1 = vs_in.texcoord1;
   vs_out.tex_coord2 = vs_in.texcoord2;
   vs_out.tex_coord3 = vs_in.texcoord3;
   return vs_out;
}

Там весь шейдер нужно редактировать в таком духе.

Смотри сюда.

Вот это
float mass[7]; есть обявление массива из семи элементов типа
float

Вот это
mass[0] = 47;
я присвоил значение 47 первому элементу такого массива

а вот это
mass[6] = 777;
последнему

а вот это
float4 tex_coord[0] : TEXCOORD0;
есть полный бред, потому что ты пытаешся обявить массив в
котором совсем нет элементов.




Viik

#20
Есть такая книжка "Shaders for programmers and artists", прочитай ее можно за 2-3 дня, и пройти все уроки. Большая часть вопросов отпадет сама. Разбираясь на примерах далеко не уйдете. Просто сейчас вы хотите чтобы шейдер просто работал, вроде получилось, потом станет вопрос внесения изменений в код, оптимизации, использования других моделей освещения, юзания масок и т.п.
Не тратьте время, ни ShaderFX не Миль не заменят знания и понимания того как это все делать руками самому. Особенно когда коснеться материалов требующих рендера в текстур или постпроцессов.

Const_47

&Viik
5+
Книжка это хорошо, но вот матподготовка и навыки программирования за 2-3:))) дня не получится никак, пусть даже это основы. 

Viik

Согласен, но школьной программы математики и программирования должно вполне хватить.

Левша

Можно глупый вопрос (у меня программирования даже в школе не было :( )? Каким образом к стандартным шейдерам (металл) прикрутить куб мэп рефлекшн? Собственно нужна автомобильная краска, если с зернистостью, то вообще бы замечательно было.

П.С. Уж извините, но в написанном выше нифига не понимаю. Если вопрос не в тему, можно удалить...

redis

Здравствуйте, уважаемые форумчане, у кого-нибудь остались примеры от Const_47 ?

1 Fong1Light
2 Fong1LightFallof
3 Fong2LightFallof
4 Fong2LightTexture
5 Fong2LightTextureCubeR

Вот эти вот, пожалуйста помогите, очень нужны.