www.boolean.name

www.boolean.name (http://forum.boolean.name/index.php)
-   Xors3D (http://forum.boolean.name/forumdisplay.php?f=126)
-   -   Помогите подключить шейдер к xors3d (http://forum.boolean.name/showthread.php?t=19521)

van88268 16.11.2014 13:33

Помогите подключить шейдер к xors3d
 
Помогите подключить шейдер к xors3d
вот в архиве есть шейдер http://moka.ucoz.ru/load/0-0-0-84-20
:)

PHP код:

//==================================================
// 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 texcoordsTEXCOORD0;
};

// Pixel Shader Input Structure
struct pi {
    
float4 position    POSITION;
    
float2 texcoordsTEXCOORD0;
    
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 INout 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.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.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();
    }
}; 


van88268 16.11.2014 13:34

Ответ: Помогите подключить шейдер к xors3d
 
кстати там в архиве есть пример тока он уже скомпилирован ((

Arton 16.11.2014 14:18

Ответ: Помогите подключить шейдер к xors3d
 
Полный Хорс включая примеры — Xors3dTrialFull.exe

Вводный урок по шейдерам, включая разнообразные исходники взятые в основном с оф. сайта, когда тот был жив — Shaders in Xors3d Engine. First steps (RU).7z

van88268 16.11.2014 14:52

Ответ: Помогите подключить шейдер к xors3d
 
Цитата:

Сообщение от Arton (Сообщение 289357)
Полный Хорс включая примеры — Xors3dTrialFull.exe

Вводный урок по шейдерам, включая разнообразные исходники взятые в основном с оф. сайта, когда тот был жив — Shaders in Xors3d Engine. First steps (RU).7z

мне нада подключить етот шейдер а то шо ты кинул то фигня всё !

h1dd3n 16.11.2014 15:08

Ответ: Помогите подключить шейдер к xors3d
 
Дак прочитай то что тебе дали, и подключи сам.

Arton 16.11.2014 16:22

Ответ: Помогите подключить шейдер к xors3d
 
Колокольчик в голове: ди-ин-до-он.
Колокольчик немного ошибся.
Тут банальная ситуация.

van88268 16.11.2014 18:45

Ответ: Помогите подключить шейдер к xors3d
 
знал бы я как уже давно подключил и вашы туторы не помогли уже читал .

tirarex 16.11.2014 18:55

Ответ: Помогите подключить шейдер к xors3d
 
Цитата:

Сообщение от van88268 (Сообщение 289363)
знал бы я как уже давно подключил и вашы туторы не помогли уже читал .

Значит плохо читал.
В первом уроке по шейдерам все ИДЕАЛЬНО расписано.

P.S. Жи , Ши пиши с буквой И.

moka 16.11.2014 19:40

Ответ: Помогите подключить шейдер к xors3d
 
van88268, приятно видеть что мой сайт еще "доживает", и кто-то пинает давно разлагающийся "труп" - xors3d и blitz3d..
Но время было хорошее.....

van88268, программирование - дело реально тяжкое, сложное, и не каждый может потянуть, и это естественно.
Если давать негативные эмоции и думать что кто-то тебе что-то там должен - то ты уже провалил, и дальше время будешь только тратить. Бросай это дело.

Но если ты готов учиться, то сиди и учись, правило №1 - не спрашивай других пока сам не попробовал потихоньку разобраться в ситуации несколько раз.

Иначе далеко не уйдешь.
Я начинал еще в лет так 12, дома, на полном уг компе, без интернета.. Вот это было время, вот это были бессонные ночи, но результат.. Ничто так не доставляет как свой личный труд. Так что, сиди и изучай, пробуй, экспериментируй, развивай в себе программиста, а не очередного школьника тратящего своё и чужое время ленивыми вопросами на форумах.

impersonalis 18.11.2014 13:20

Ответ: Помогите подключить шейдер к xors3d
 
Цитата:

Сообщение от moka (Сообщение 289371)
Я начинал еще в лет так 12, дома, на полном уг компе, без интернета.. Вот это было время, вот это были бессонные ночи, но результат.. Ничто так не доставляет как свой личный труд. Так что, сиди и изучай, пробуй, экспериментируй, развивай в себе программиста, а не очередного школьника тратящего своё и чужое время ленивыми вопросами на форумах.

Всегда был и сторонником именно такого подхода. Так как основы постигал тоже в глубоком оффлайне.
Но современные тенденции же: нафиг оптимзацию, нафиг Only-code-style: ляпаем источники света, мышкой набрасываем объекты, и рисуем граф автомата логики. В итоге: обходим хардкодщиков по времени реализации и красоте результата. А под капот игрок не смотрит.
Быть может терь и с кодом так надо? Проганье методом брутфорса форумов.

moka 18.11.2014 14:27

Ответ: Помогите подключить шейдер к xors3d
 
Цитата:

Сообщение от impersonalis (Сообщение 289480)
Но современные тенденции же: нафиг оптимзацию, нафиг Only-code-style: ляпаем источники света, мышкой набрасываем объекты, и рисуем граф автомата логики. В итоге: обходим хардкодщиков по времени реализации и красоте результата. А под капот игрок не смотрит.
Быть может терь и с кодом так надо? Проганье методом брутфорса форумов.

Мой опыт показывает что такие туулзы во первых балуют разраба, тем самым еще сильнее отбивает возможности что разраб будет трудиться как следует (избаловали же).
Во вторых - такого не бывает. Набросать тяп-ляп и готово, и чтобы было быстрее чем реальные кодеры, и результат был на коммерческом уровне - честно, покажите мне хоть один проект так сделанный.
В вебе это еще сильнее, менеджмент будет думать что можно просто взять Amazon Cloud и там серверов создать, не хватает мощности "просто увелич его". Ага.. Конечно.. По факту работа в облаке с серверами почти точно также как если у тебя радом стоит физический комп. И чтобы "просто увеличить его", нужно поставить рядом большой комп с покруче железом, поставить на него ОСь (ну тут да, облако ставит за тебя), но далее нужно все настроить как на оригинальном и все скопировать и запустить. И это работа.

Так и в геймдеве - хочешь шейдерами пользоваться? Научись их сперва читать. Это также как: "я хочу иметь оперировать мыслями из этой книги, но читать я ее не хочу".

Да и польза от таких пользователей кстати нулевая, если такой пользователь даже толком поставить вопрос не может - тратит чужое время. Он учиться не хочет, хочет результат, думает что другие ему обязаны. Ничего нового он не создаст. Следственно какая польза сообществу от такого юзверя? Никакой, только трата общего времени.


Часовой пояс GMT +4, время: 10:19.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
Перевод: zCarot