forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Xors3D (http://forum.boolean.name/forumdisplay.php?f=126)
-   -   Переместить вершину исходя из нормал мап. (http://forum.boolean.name/showthread.php?t=20663)

CRASHER 12.11.2017 14:36

Переместить вершину исходя из нормал мап.
 
Хоть тема и не про хорс, но про шейдер, спрошу тут. Поянл что в вершинном шейдере (покрайней мере мне) сложно или не возможно узнать цвет вершины, тот что она получит после ее текстурирования. Везде где читал, берут tex2d, однако ни на 2.0 ни на 3.0 у меня эта функция не работает в вершинном шейдере. Задача то проста. Переместить вершины по оси z на высоту соответствующую яркости координаты нормал мап текстуры. То есть тот самый Дисплейсмент. Что можете посоветовать?

Mr_F_ 13.11.2017 00:11

Ответ: Переместить вершину исходя из нормал мап.
 
tex2Dlod попробуй

CRASHER 13.11.2017 19:08

Ответ: Переместить вершину исходя из нормал мап.
 
да, похоже то что надо. Но почему то ничего она не меняет.
Как проверить передается ли цвет в нужную переменную?

Код:

float4x4 matWorldViewProjection;
float4x4 matViewProjection;
float4x4 MovMat;

sampler Texture0;

struct VS_INPUT
{
  float4 Position : POSITION0;
  float2 Tex0    : TEXCOORD0; 
  float4 TColor  : COLOR0;
  float3 Normal  : NORMAL0;
};

struct VS_OUTPUT
{
  float4 Position : POSITION0;
  float2 Tex0    : TEXCOORD0;
  float4 Diffuse  : COLOR0;
};

VS_OUTPUT vs_main(VS_INPUT Input)
{
VS_OUTPUT Out;
float4 color=tex2Dlod(Texture0,float4(Input.Tex0.xy,0,0));
if (color.r>0.3)
{
  Input.Position.z=Input.Position.z+0.5;//mul(Input.Position,MovMat);
  }else{
  Out.Position = mul(Input.Position, matViewProjection);
};

Out.Tex0.xy = Input.Tex0.xy;
//Input.TColor.b=0.2;

Out.Diffuse=Input.TColor;
return Out;
};


Mr_F_ 19.11.2017 05:04

Ответ: Переместить вершину исходя из нормал мап.
 
Цитата:

Input.Position.z=Input.Position.z+0.5;//mul(Input.Position,MovMat);
}else{
Out.Position = mul(Input.Position, matViewProjection);
Чето хрень какая-то. Если красный больше 0.3, ты меняешь инпут, забиваешь на него и не пишешь аутпут


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

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