|
Xors3D Графический движок с поддержкой DirectX9 |
16.11.2014, 13:33
|
#1
|
AnyKey`щик
Регистрация: 16.11.2014
Сообщений: 4
Написано 0 полезных сообщений (для 0 пользователей)
|
Помогите подключить шейдер к xors3d
Помогите подключить шейдер к xors3d
вот в архиве есть шейдер http://moka.ucoz.ru/load/0-0-0-84-20
//================================================== // Varriables const float4x4 matworldviewproj; const float4x4 matworld;
const bool eff[4];
const float3 lightPos; const float3 camPos; const float4 clrAmb; const float4 clrLig; const float4 clrSpc; static float height; static float bias;
static float bumplight; static float specular;
const float2 vdepth; const float2 vdist;
static float3 cn; //static float4 cs; static float cp; static float4 ccolor;
static float3 reflv; static float fRdotL;
static float3 pos;
static float3 vview; static float falloff; static float2 dist; static float3 vlight;
const float2 texScale;
//================================================== // Textures texture tdiffuse; sampler texdiffuse=sampler_state { Texture = <tdiffuse>; ADDRESSU = WRAP; ADDRESSV = WRAP; ADDRESSW = WRAP; MAGFILTER = LINEAR; MINFILTER = LINEAR; MIPFILTER = LINEAR; }; texture tnormal; sampler texnormal=sampler_state { Texture = <tnormal>; ADDRESSU = WRAP; ADDRESSV = WRAP; ADDRESSW = WRAP; MAGFILTER = LINEAR; MINFILTER = LINEAR; MIPFILTER = LINEAR; }; texture tdisplace; sampler texdisplace=sampler_state { Texture = <tdisplace>; ADDRESSU = WRAP; ADDRESSV = WRAP; ADDRESSW = WRAP; MAGFILTER = LINEAR; MINFILTER = LINEAR; MIPFILTER = LINEAR; };
//================================================== // Vertex Shader Input Structure struct vi { float4 position : POSITION; float3 normal : NORMAL; float3 tangent : TANGENT; float3 binormal : BINORMAL; float3 texcoords: TEXCOORD0; };
// Pixel Shader Input Structure struct pi { float4 position : POSITION; float2 texcoords: TEXCOORD0; float3 normal : TEXCOORD1; float3 tangent : TEXCOORD2; float3 binormal : TEXCOORD3; float3 wpos : TEXCOORD4; //float3 vlight : TEXCOORD1; //float3 vview : TEXCOORD2; //float falloff : TEXCOORD4; //float2 dist : TEXCOORD3; };
//================================================== // Vertex Shader Main Functions void vs(in vi IN, out pi OUT) { OUT.position = mul(IN.position, matworldviewproj); OUT.wpos = mul(IN.position, matworld); OUT.tangent = mul(IN.tangent, matworld); OUT.binormal = mul(IN.binormal, matworld); OUT.normal = mul(IN.normal, matworld); OUT.texcoords=IN.texcoords/texScale; };
//================================================== // Pixel Shader Main Functions float4 ps(in pi IN) : COLOR { bias=vdepth.x/2; if (eff[0]+eff[1]+eff[2]>0) { float3x3 matTangentSpace=float3x3(IN.tangent,IN.binormal,IN.normal); matTangentSpace = transpose(matTangentSpace); vview = normalize(camPos-IN.wpos); falloff = dot(vview,IN.normal); vview = normalize(mul(vview,matTangentSpace)); //dist.y = 1-(distance(camPos,IN.wpos)/vdist.y); if (eff[0]==true) { dist.y = 1-(distance(camPos,IN.wpos)/vdist.y); if (dist.y>.05) { cp = tex2D(texdisplace,IN.texcoords).r; height = (vdepth.x*cp-bias); IN.texcoords = IN.texcoords+height*vview.xy*dist.y; } } ccolor=tex2D(texdiffuse,IN.texcoords); if (eff[1]+eff[2]>0) { dist.x = 1-(distance(lightPos,IN.wpos)/vdist.x); if (dist.x>.01) { vlight = normalize(mul(lightPos-IN.wpos,matTangentSpace)); cn = normalize(tex2D(texnormal,IN.texcoords)*2-1); if (eff[1]==true) { bumplight = max(dot(cn,vlight)+0.1f,0.0f)*dist.x; ccolor = ccolor*(clrAmb*(1-saturate(dist.x)))+ccolor*bumplight*clrLig; } else { ccolor = ccolor*clrAmb; } if (eff[2]==true) { reflv = normalize(dot(vview,cn)*cn-vview); fRdotL = saturate(dot(reflv,vlight)); specular = saturate(pow(fRdotL,vdepth.y))*(1-pow(1-dist.x,2)); ccolor +=ccolor*specular*pow(1-falloff,1.5)*clrSpc.w*clrSpc; } } else { ccolor=ccolor*clrAmb; } } } else { ccolor=tex2D(texdiffuse,IN.texcoords); } return ccolor; };
//================================================== // Techniques technique main { pass p0 { vertexshader = compile vs_1_1 vs(); pixelshader = compile ps_3_0 ps(); } };
|
(Offline)
|
|
16.11.2014, 13:34
|
#2
|
AnyKey`щик
Регистрация: 16.11.2014
Сообщений: 4
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Помогите подключить шейдер к xors3d
кстати там в архиве есть пример тока он уже скомпилирован ((
|
(Offline)
|
|
16.11.2014, 14:18
|
#3
|
Быдлокодер
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,024
Написано 2,312 полезных сообщений (для 5,349 пользователей)
|
Ответ: Помогите подключить шейдер к xors3d
Полный Хорс включая примеры — Xors3dTrialFull.exe
Вводный урок по шейдерам, включая разнообразные исходники взятые в основном с оф. сайта, когда тот был жив — Shaders in Xors3d Engine. First steps (RU).7z
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
16.11.2014, 14:52
|
#4
|
AnyKey`щик
Регистрация: 16.11.2014
Сообщений: 4
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Помогите подключить шейдер к xors3d
Сообщение от Arton
|
мне нада подключить етот шейдер а то шо ты кинул то фигня всё !
|
(Offline)
|
|
16.11.2014, 15:08
|
#5
|
Бывалый
Регистрация: 19.06.2008
Сообщений: 679
Написано 264 полезных сообщений (для 450 пользователей)
|
Ответ: Помогите подключить шейдер к xors3d
Дак прочитай то что тебе дали, и подключи сам.
__________________
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо h1dd3n за это полезное сообщение:
|
|
16.11.2014, 16:22
|
#6
|
Быдлокодер
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,024
Написано 2,312 полезных сообщений (для 5,349 пользователей)
|
Ответ: Помогите подключить шейдер к xors3d
Колокольчик в голове: ди-ин-до-он.
Колокольчик немного ошибся.
Тут банальная ситуация.
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо Arton за это полезное сообщение:
|
|
16.11.2014, 18:45
|
#7
|
AnyKey`щик
Регистрация: 16.11.2014
Сообщений: 4
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Помогите подключить шейдер к xors3d
знал бы я как уже давно подключил и вашы туторы не помогли уже читал .
|
(Offline)
|
|
16.11.2014, 18:55
|
#8
|
Бывалый
Регистрация: 23.11.2011
Сообщений: 863
Написано 334 полезных сообщений (для 866 пользователей)
|
Ответ: Помогите подключить шейдер к xors3d
Сообщение от van88268
знал бы я как уже давно подключил и вашы туторы не помогли уже читал .
|
Значит плохо читал.
В первом уроке по шейдерам все ИДЕАЛЬНО расписано.
P.S. Жи , Ши пиши с буквой И.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
16.11.2014, 19:40
|
#9
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Помогите подключить шейдер к xors3d
van88268, приятно видеть что мой сайт еще "доживает", и кто-то пинает давно разлагающийся "труп" - xors3d и blitz3d..
Но время было хорошее.....
van88268, программирование - дело реально тяжкое, сложное, и не каждый может потянуть, и это естественно.
Если давать негативные эмоции и думать что кто-то тебе что-то там должен - то ты уже провалил, и дальше время будешь только тратить. Бросай это дело.
Но если ты готов учиться, то сиди и учись, правило №1 - не спрашивай других пока сам не попробовал потихоньку разобраться в ситуации несколько раз.
Иначе далеко не уйдешь.
Я начинал еще в лет так 12, дома, на полном уг компе, без интернета.. Вот это было время, вот это были бессонные ночи, но результат.. Ничто так не доставляет как свой личный труд. Так что, сиди и изучай, пробуй, экспериментируй, развивай в себе программиста, а не очередного школьника тратящего своё и чужое время ленивыми вопросами на форумах.
|
(Offline)
|
|
Эти 6 пользователя(ей) сказали Спасибо moka за это полезное сообщение:
|
|
18.11.2014, 13:20
|
#10
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: Помогите подключить шейдер к xors3d
Сообщение от moka
Я начинал еще в лет так 12, дома, на полном уг компе, без интернета.. Вот это было время, вот это были бессонные ночи, но результат.. Ничто так не доставляет как свой личный труд. Так что, сиди и изучай, пробуй, экспериментируй, развивай в себе программиста, а не очередного школьника тратящего своё и чужое время ленивыми вопросами на форумах.
|
Всегда был и сторонником именно такого подхода. Так как основы постигал тоже в глубоком оффлайне.
Но современные тенденции же: нафиг оптимзацию, нафиг Only-code-style: ляпаем источники света, мышкой набрасываем объекты, и рисуем граф автомата логики. В итоге: обходим хардкодщиков по времени реализации и красоте результата. А под капот игрок не смотрит.
Быть может терь и с кодом так надо? Проганье методом брутфорса форумов.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:
|
|
18.11.2014, 14:27
|
#11
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Помогите подключить шейдер к xors3d
Сообщение от impersonalis
Но современные тенденции же: нафиг оптимзацию, нафиг Only-code-style: ляпаем источники света, мышкой набрасываем объекты, и рисуем граф автомата логики. В итоге: обходим хардкодщиков по времени реализации и красоте результата. А под капот игрок не смотрит.
Быть может терь и с кодом так надо? Проганье методом брутфорса форумов.
|
Мой опыт показывает что такие туулзы во первых балуют разраба, тем самым еще сильнее отбивает возможности что разраб будет трудиться как следует (избаловали же).
Во вторых - такого не бывает. Набросать тяп-ляп и готово, и чтобы было быстрее чем реальные кодеры, и результат был на коммерческом уровне - честно, покажите мне хоть один проект так сделанный.
В вебе это еще сильнее, менеджмент будет думать что можно просто взять Amazon Cloud и там серверов создать, не хватает мощности "просто увелич его". Ага.. Конечно.. По факту работа в облаке с серверами почти точно также как если у тебя радом стоит физический комп. И чтобы "просто увеличить его", нужно поставить рядом большой комп с покруче железом, поставить на него ОСь (ну тут да, облако ставит за тебя), но далее нужно все настроить как на оригинальном и все скопировать и запустить. И это работа.
Так и в геймдеве - хочешь шейдерами пользоваться? Научись их сперва читать. Это также как: "я хочу иметь оперировать мыслями из этой книги, но читать я ее не хочу".
Да и польза от таких пользователей кстати нулевая, если такой пользователь даже толком поставить вопрос не может - тратит чужое время. Он учиться не хочет, хочет результат, думает что другие ему обязаны. Ничего нового он не создаст. Следственно какая польза сообществу от такого юзверя? Никакой, только трата общего времени.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 09:00.
|