Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Xors3D

Xors3D Графический движок с поддержкой DirectX9

Ответ
 
Опции темы
Старый 09.03.2012, 01:08   #1
Crystal
Терабайт исходников
 
Аватар для Crystal
 
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений
(для 5,374 пользователей)
Мультитекстуринг

Как присвоить отдельным вертексам сурфейса разные текстуры?
Есть ли готовые решения?

(не предлагайте написать шейдер, я не умею их писать)
(Offline)
 
Ответить с цитированием
Старый 09.03.2012, 01:13   #2
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Мультитекстуринг

никак. это должны быть разные сюрфейсы. на дх10 есть текстурные массивы.

ну или атлас.
(Offline)
 
Ответить с цитированием
Старый 09.03.2012, 11:02   #3
Crystal
Терабайт исходников
 
Аватар для Crystal
 
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений
(для 5,374 пользователей)
Ответ: Мультитекстуринг

Сообщение от HolyDel Посмотреть сообщение
никак. это должны быть разные сюрфейсы. на дх10 есть текстурные массивы.

ну или атлас.
Читал вчера справку по шейдерам, там написано:

Текстуры объекта. Каждый объект (а точнее его поверхности), могут иметь до 8 текстур, они передаются по семантике TEXTURE_n, где n – номе текстурного слоя в диапазоне [0, 7]. Например:
texture diffuseTexture : TEXTURE_0; // дифузная текстура, будет взята с
// нулевого слоя поверхности объекта
texture normalTexture : TEXTURE_1; // текстура карты нормалей, будет
// взята с первого слоя поверхности
// объекта
Значит, через шейдеры к одному сурфейсу можно применить до 8 текстур.
Значит уже есть готовые решения, кто-нибудь этим занимался.
(Offline)
 
Ответить с цитированием
Старый 09.03.2012, 12:57   #4
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Мультитекстуринг

8 текстур.
текстурные координаты то одни. ну или максимум две.
(Offline)
 
Ответить с цитированием
Старый 09.03.2012, 13:06   #5
Crystal
Терабайт исходников
 
Аватар для Crystal
 
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений
(для 5,374 пользователей)
Ответ: Мультитекстуринг

Сообщение от HolyDel Посмотреть сообщение
8 текстур.
текстурные координаты то одни. ну или максимум две.
Я видел видео различных редакторов, где кистями рисуют по мешу.
Берут текстуру, и наносят в нужную область. Никаких дополнительных
мешей при этом имхо не создаётся.

Есть теория, как они это делают?
Я много проблем для себя решил в программировании,
но проблему текстурирования ландшафтов не смог.

В максе я могу замоделить ландшафт, и затекстурить как надо,
но это мне не подходит.

Есть какие предложения по реализации нормального текстурирования ландшафта?
(Offline)
 
Ответить с цитированием
Старый 09.03.2012, 13:14   #6
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Мультитекстуринг

смотря сколько текстур.
5 - вполне влазят в интерполяцию по цвету.
float4 resultcolor = tex2D(tex0,uv) * color.a + tex2D(tex1,uv) * color.r + tex2D(tex2,uv) * color.g + tex2D(tex3,uv) * color.b + tex2D(tex4,uv) * ((1.0 - color.a + color.r + color.g + color.b));
больше - сложнее, и скорее всего сведется к созданию дополнительных поверхностей.
(Offline)
 
Ответить с цитированием
Старый 09.03.2012, 13:32   #7
Crystal
Терабайт исходников
 
Аватар для Crystal
 
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений
(для 5,374 пользователей)
Ответ: Мультитекстуринг

Пардон, этот код - это что вообще?
(Offline)
 
Ответить с цитированием
Старый 09.03.2012, 13:51   #8
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Мультитекстуринг

Берут текстуру, и наносят в нужную область. Никаких дополнительных
мешей при этом имхо не создаётся.
а кто сказал? насколько я помню по рипперенью TES, там на каждую текстуру на террейне рисуется копия меша террейна с этой тексой. много текс блендятся поверх друг друга.

если тебе не говорят, что дополнительные меши создаются, это не значит, что они не создаются.
(Offline)
 
Ответить с цитированием
Старый 09.03.2012, 14:57   #9
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Мультитекстуринг

Сообщение от CrystalDev Посмотреть сообщение
Есть какие предложения по реализации нормального текстурирования ландшафта?
Смотреть насколько нормаль откланяется от вертикали, обращать внимание на высоту каждого пикселя и плюс можно еще по самим текстурным координатам что-нить замутить и таки из десятка хороших текстур можно сделать относительно приличный шейдер.
(Offline)
 
Ответить с цитированием
Старый 09.03.2012, 18:40   #10
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Мультитекстуринг

Кури Terrain Splatting.
(Offline)
 
Ответить с цитированием
Старый 09.03.2012, 19:30   #11
LLI.T.A.L.K.E.R.
Мастер
 
Аватар для LLI.T.A.L.K.E.R.
 
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений
(для 504 пользователей)
Ответ: Мультитекстуринг

Сообщение от MoKa Посмотреть сообщение
Кури Terrain Splatting.
http://www.blitzbasic.com/codearcs/c....php?code=2620



В последней версии используется один mesh.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо LLI.T.A.L.K.E.R. за это полезное сообщение:
ant0N (26.04.2012), Crystal (09.03.2012)
Старый 09.03.2012, 19:38   #12
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Мультитекстуринг

сюрфейсов несколько, а именно они олицетворяют вызовы отрисовки.
(Offline)
 
Ответить с цитированием
Старый 09.03.2012, 22:49   #13
Taugeshtu
scientist.alien
 
Аватар для Taugeshtu
 
Регистрация: 12.02.2007
Сообщений: 2,098
Написано 1,030 полезных сообщений
(для 2,593 пользователей)
Ответ: Мультитекстуринг

больше - сложнее, и скорее всего сведется к созданию дополнительных поверхностей.
Запихивал в ксорс шейдером 8 текстур, алгоритм топорен донельзя:
  • в альфа-канал суём маску для текстуры (можно нарисовать в любой 3д-малевалке по любому мешу-террейну (я лично использовал для летающих островов) любым интересующим цветом маску, а потом сунуть в каком-нибудь фотошопе);
  • в rbg - саму диффузную текстуру (да, фокусы с нормалями не сделать, печаль..);
  • опционально передаём масштабирование отдельно на каждый слой и смещение каким-нибудь 4-хкомпонентным вектором;
  • смешиваем в порядке следования по альфе...

Где-то даже лежит (наверное) у меня исходник шейдера...
В качестве "бонуса" - 16 выборок на пиксель, да.

Вот шейдер; правда комменты похерились в кодировке... Ну и леший с ними:

float4x4 matrixWorldViewProj : MATRIX_WORLDVIEWPROJ; // пїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
float4x4 matrixWorld         : MATRIX_WORLD;         // пїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅ
float3   lightDirection      : LIGHT0_DIRECTION;     // пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
float4   lightColor          : LIGHT0_COLOR;         // пїЅпїЅпїЅпїЅ
float4   entityColor         : COLOR_DIFFUSE;        // пїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅ
float4      size0            ;
float4      size1            ;
texture  lay0                : TEXTURE_0;            // пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
texture  lay1                : TEXTURE_1;            // пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
texture  lay2                : TEXTURE_2;            // пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
texture  lay3                : TEXTURE_3;            // пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
texture  lay4                : TEXTURE_4;            // пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
texture  lay5                : TEXTURE_5;            // пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
texture  lay6                : TEXTURE_6;            // пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
texture  lay7                : TEXTURE_7;            // пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
// LAYER_0
sampler layer_0 = sampler_state
{
	Texture = <lay0>; // пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
	// пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
	AddressU      = WRAP;
	AddressV      = WRAP;
	AddressW      = WRAP;
	// пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
	MinFilter     = ANISOTROPIC;
	MagFilter     = ANISOTROPIC;
	MipFilter     = ANISOTROPIC;
	// пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
	MaxAnisotropy = 4;
};
// LAYER_1
sampler layer_1 = sampler_state
{
	Texture = <lay1>; // пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
	// пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
	AddressU      = WRAP;
	AddressV      = WRAP;
	AddressW      = WRAP;
	// пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
	MinFilter     = ANISOTROPIC;
	MagFilter     = ANISOTROPIC;
	MipFilter     = ANISOTROPIC;
	// пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
	MaxAnisotropy = 4;
};
// LAYER_2
sampler layer_2 = sampler_state
{
	Texture = <lay2>; // пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
	// пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
	AddressU      = WRAP;
	AddressV      = WRAP;
	AddressW      = WRAP;
	// пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
	MinFilter     = ANISOTROPIC;
	MagFilter     = ANISOTROPIC;
	MipFilter     = ANISOTROPIC;
	// пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
	MaxAnisotropy = 4;
};
// LAYER_3
sampler layer_3 = sampler_state
{
	Texture = <lay3>; // пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
	// пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
	AddressU      = WRAP;
	AddressV      = WRAP;
	AddressW      = WRAP;
	// пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
	MinFilter     = ANISOTROPIC;
	MagFilter     = ANISOTROPIC;
	MipFilter     = ANISOTROPIC;
	// пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
	MaxAnisotropy = 4;
};
// LAYER_4
sampler layer_4 = sampler_state
{
	Texture = <lay4>; // пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
	// пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
	AddressU      = WRAP;
	AddressV      = WRAP;
	AddressW      = WRAP;
	// пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
	MinFilter     = ANISOTROPIC;
	MagFilter     = ANISOTROPIC;
	MipFilter     = ANISOTROPIC;
	// пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
	MaxAnisotropy = 4;
};
// LAYER_5
sampler layer_5 = sampler_state
{
	Texture = <lay5>; // пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
	// пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
	AddressU      = WRAP;
	AddressV      = WRAP;
	AddressW      = WRAP;
	// пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
	MinFilter     = ANISOTROPIC;
	MagFilter     = ANISOTROPIC;
	MipFilter     = ANISOTROPIC;
	// пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
	MaxAnisotropy = 4;
};
// LAYER_6
sampler layer_6 = sampler_state
{
	Texture = <lay6>; // пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
	// пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
	AddressU      = WRAP;
	AddressV      = WRAP;
	AddressW      = WRAP;
	// пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
	MinFilter     = ANISOTROPIC;
	MagFilter     = ANISOTROPIC;
	MipFilter     = ANISOTROPIC;
	// пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
	MaxAnisotropy = 4;
};// LAYER_7
sampler layer_7 = sampler_state
{
	Texture = <lay7>; // пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
	// пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
	AddressU      = WRAP;
	AddressV      = WRAP;
	AddressW      = WRAP;
	// пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
	MinFilter     = ANISOTROPIC;
	MagFilter     = ANISOTROPIC;
	MipFilter     = ANISOTROPIC;
	// пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
	MaxAnisotropy = 4;
};
// пїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅ
struct VSInput
{
	float4 position  : POSITION;
	float3 normal    : NORMAL;
	float2 texCoords : TEXCOORD0;
};
// пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅ
struct VSOutput
{
	float4 position  : POSITION;
	float3 normal    : TEXCOORD1;
	float2 texCoords : TEXCOORD0;
};
// пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅ
VSOutput VSMain(VSInput input)
{
	// пїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅ
	VSOutput output;
	// пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅ
	output.position  = mul(input.position, matrixWorldViewProj);
	// пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅ
	output.normal    = normalize(mul(input.normal, matrixWorld));
	// пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
	output.texCoords = input.texCoords;
	// пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
	return output;
}
// пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅ
float4 PSMain(VSOutput input) : COLOR0
{	
	// пїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
	float4 m0 = tex2D(layer_0, input.texCoords);
	float4 m1 = tex2D(layer_1, input.texCoords);
	float4 m2 = tex2D(layer_2, input.texCoords);
	float4 m3 = tex2D(layer_3, input.texCoords);
	float4 m4 = tex2D(layer_4, input.texCoords);
	float4 m5 = tex2D(layer_5, input.texCoords);
	float4 m6 = tex2D(layer_6, input.texCoords);
	float4 m7 = tex2D(layer_7, input.texCoords);
	float4 d0 = tex2D(layer_0, input.texCoords * size0.x);
	float4 d1 = tex2D(layer_1, input.texCoords * size0.y);
	float4 d2 = tex2D(layer_2, input.texCoords * size0.z);
	float4 d3 = tex2D(layer_3, input.texCoords * size0.w);
	float4 d4 = tex2D(layer_4, input.texCoords * size1.x);
	float4 d5 = tex2D(layer_5, input.texCoords * size1.y);
	float4 d6 = tex2D(layer_6, input.texCoords * size1.z);
	float4 d7 = tex2D(layer_7, input.texCoords * size1.w);
	// пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅ
	float lit = dot(input.normal, -lightDirection);
	// ambient
	lit = max(0.15, lit);
	float4 result = ((((((d0*(1-m1.a)+d1*m1.a)*(1-m2.a)+d2*m2.a)*(1-m3.a)+d3*m3.a)*(1-m4.a)+d4*m4.a)*(1-m5.a)+d5*m5.a)*(1-m6.a)+d6*m6.a)*(1-m7.a)+d7*m7.a;
	// пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅ
//	result = (result * entityColor * lit * lightColor);
//	result.a = 0.5;
//	return result;
	return (result * entityColor * lit * lightColor);
}
// пїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
technique multi_tile
{
	pass p0
	{
//		AlphaBlendEnable= true;
		VertexShader = compile vs_2_0 VSMain();
		PixelShader  = compile ps_2_0 PSMain();
	}
}
__________________
Public service announcement: вы можете заблокировать отображение сообщений определённого пользователя, добавив его ник в список игнорируемых.
Tau lab.
We LOVE you. We MADE you.
(Offline)
 
Ответить с цитированием
Старый 09.03.2012, 23:51   #14
Crystal
Терабайт исходников
 
Аватар для Crystal
 
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений
(для 5,374 пользователей)
Ответ: Мультитекстуринг

http://www.youtube.com/watch?v=kKov7Uyqm6E

Вот видео из редактора юнити, смотрим на 3:00.
Вы хотите сказать, что при рисовке этой дороги
создалась копия террайна с альфой???

А если мне надо 20 дорог из разного кирпича,
эт что 20 альфатеррайнов создастся?

Да брехня это всё.
(Offline)
 
Ответить с цитированием
Старый 10.03.2012, 00:02   #15
Crystal
Терабайт исходников
 
Аватар для Crystal
 
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений
(для 5,374 пользователей)
Ответ: Мультитекстуринг

Даже вот возьмём например не мэп эдиторы, а текстурирование в максе.
Я могу на одну цельную модель кучу разных текстур наляпать в разные области.
Если это возможно в максе сделать с моделью, то блин наверное и в игре можно.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com