Четверг, 19.06.2025, 22:00
Приветствую Вас Гость | RSS
Главная | тени - Форум | Регистрация | Вход
Direct3D. Разработка игр
Форма входа
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
тени
SvakeДата: Воскресенье, 20.01.2008, 19:33 | Сообщение # 1
Лейтенант
Группа: Модераторы
Сообщений: 25
Репутация: 2
Статус: Offline
думаю никто не знает как сделать shadowvolume на анимированный объект(на сатический я и сам могу) т.ч. может у каво завалялись шейдеры с ShadowMap'ами...из SDK не предлагать...желательно чтоб они были простые(и желательно с блюром).

ﻕﺭﯛﻂﻣﻯ ﭳﯛﻭﻣﻕ
я ктулху...бойтесь меня


Сообщение отредактировал Svake - Воскресенье, 20.01.2008, 19:34
 
DoomCrossДата: Воскресенье, 20.01.2008, 21:52 | Сообщение # 2
Admin
Группа: Администраторы
Сообщений: 34
Репутация: 3
Статус: Offline
Может, что-то вреде этого?

// Desc: Vertex blending vertex shader. Supports meshes with 2-4 bone
// influences per vertex. We can dynamically set NumVertInfluences
// so that the shader knows how many weights it is processing
// per vertex. In order to support dynamic loops, we must use
// at least vertex shader version 2.0.
//
////////////////////////////////////////////////////////////////////////////

extern float4x4 WorldViewProj;
extern float4x4 FinalTransforms[35];
extern texture Tex;
extern int NumVertInfluences = 2; // <--- Normally set dynamically.

sampler S0 = sampler_state
{
Texture = <Tex>;
MinFilter = LINEAR;
MagFilter = LINEAR;
MipFilter = LINEAR;
};

struct VS_OUTPUT
{
float4 pos : POSITION0;
float2 texCoord : TEXCOORD;
float4 diffuse : COLOR0;
};

VS_OUTPUT VertexBlend(float4 pos : POSITION0,
float2 texCoord : TEXCOORD0,
float4 weights : BLENDWEIGHT0,
int4 boneIndices : BLENDINDICES0)
{

VS_OUTPUT output = (VS_OUTPUT)0;

float4 p = float4(0.0f, 0.0f, 0.0f, 1.0f);
float lastWeight = 0.0f;
int n = NumVertInfluences-1;
for(int i = 0; i < n; ++i)
{
lastWeight += weights[i];
p += weights[i] * mul(pos, FinalTransforms[boneIndices[i]]);
}
lastWeight = 1.0f - lastWeight;

p += lastWeight * mul(pos, FinalTransforms[boneIndices[n]]);

p.w = 1.0f;

output.pos = mul(p, WorldViewProj);
output.texCoord = texCoord;
output.diffuse = float4(1.0f, 1.0f, 1.0f, 1.0f);

return output;
}

technique VertexBlendingTech
{
pass P0
{
vertexShader = compile vs_2_0 VertexBlend();
Sampler[0] = <S0>;

Lighting = true;
}
}


Не мертво то, что в вечности живет.
Со смертью времени и смерть умрет.
--------------------------------------------
Visual C++ 2005, DirectX9.0 (November), Windows XP
 
DoomCrossДата: Понедельник, 21.01.2008, 22:09 | Сообщение # 3
Admin
Группа: Администраторы
Сообщений: 34
Репутация: 3
Статус: Offline
Возможно. Если чесно, то я тоже не очень силен))). И это, скорее всего, действительно шейдер скелетной анимации, эт я из одного примера взял.

Не мертво то, что в вечности живет.
Со смертью времени и смерть умрет.
--------------------------------------------
Visual C++ 2005, DirectX9.0 (November), Windows XP
 
BoosterДата: Пятница, 25.01.2008, 15:47 | Сообщение # 4
Рядовой
Группа: Пользователи
Сообщений: 19
Репутация: 0
Статус: Offline
Svake,
Quote
думаю никто не знает как сделать shadowvolume на анимированный объект

Почему никто не знает, знает. -) В шейдере shadowvolume вполне реально просчитать.
 
SvakeДата: Пятница, 25.01.2008, 15:50 | Сообщение # 5
Лейтенант
Группа: Модераторы
Сообщений: 25
Репутация: 2
Статус: Offline
для анимированного Xфайла? хм я пытался выдрать меш каждого кадра и расчитывать для него shadowvolume, но у меня такие артефакты, жуть!

ﻕﺭﯛﻂﻣﻯ ﭳﯛﻭﻣﻕ
я ктулху...бойтесь меня
 
BoosterДата: Пятница, 25.01.2008, 15:58 | Сообщение # 6
Рядовой
Группа: Пользователи
Сообщений: 19
Репутация: 0
Статус: Offline
Svake, видел в одной из книг Фленова расчёт на шейдере, если надо сегодня вечером могу скинуть, сейчас книги нету. Там вроде понятно как он работает, так что проблем быть не должно. Но как обычно у него не сглаженная тень, так что выглядит не шибко.
 
SvakeДата: Пятница, 25.01.2008, 16:08 | Сообщение # 7
Лейтенант
Группа: Модераторы
Сообщений: 25
Репутация: 2
Статус: Offline
Booster, да скинь плз мне ее

ﻕﺭﯛﻂﻣﻯ ﭳﯛﻭﻣﻕ
я ктулху...бойтесь меня
 
BoosterДата: Пятница, 25.01.2008, 21:49 | Сообщение # 8
Рядовой
Группа: Пользователи
Сообщений: 19
Репутация: 0
Статус: Offline
Гм. Не ясно как аттачи пихать, пример достаточно объёмен чтобы здесь полностью постить.
 
SvakeДата: Суббота, 26.01.2008, 08:10 | Сообщение # 9
Лейтенант
Группа: Модераторы
Сообщений: 25
Репутация: 2
Статус: Offline
Booster,
а ты на какой-нибудь файлообменник или кинь на qxray@mail.ru


ﻕﺭﯛﻂﻣﻯ ﭳﯛﻭﻣﻕ
я ктулху...бойтесь меня
 
BoosterДата: Суббота, 26.01.2008, 13:02 | Сообщение # 10
Рядовой
Группа: Пользователи
Сообщений: 19
Репутация: 0
Статус: Offline
http://rapidshare.com/files/86715629/Shadow.rar.html
Там правда у него тоже какие-то баги.
Но суть в том что, рендерится вначале комната с одним шейдером, затем объект и комната с другими.
 
SvakeДата: Суббота, 26.01.2008, 14:29 | Сообщение # 11
Лейтенант
Группа: Модераторы
Сообщений: 25
Репутация: 2
Статус: Offline
спс буду разбираться

ﻕﺭﯛﻂﻣﻯ ﭳﯛﻭﻣﻕ
я ктулху...бойтесь меня
 
  • Страница 1 из 1
  • 1
Поиск:


Doom†Cross Software ® 2025
Создать бесплатный сайт с uCoz