Показать сообщение отдельно
Старый 09.05.2012, 07:48   #3
ANIK123
Знающий
 
Аватар для ANIK123
 
Регистрация: 29.11.2010
Сообщений: 244
Написано 31 полезных сообщений
(для 49 пользователей)
Хорошо Ответ: Шейдеры + частицы

Ух ты, КАКОЙ ответ!) Аж любо смотреть - так все разжевано и развернуто!))) Эхх, если б так Все делали... Спасибо тебе, добрый человек!)

Все заработало как часики швейЦарские) Правда с пропорциями квада чтото не то - какой-то сплющенный он получился

struct vsi
{
	float4 position : POSITION;
	float3 texCoords : TEXCOORD0; 
	float4 color : COLOR;
};

struct vso
{
	float4 color : TEXCOORD1;
	float4 position : POSITION;
};

vso VS(vsi i)
{
	vso o;
	o.position = mul(i.position, viewProj);
	if (i.texCoords.x > 0){o.position.x += 1.0f;} else{o.position.x -= 1.0f;}
	if (i.texCoords.y > 0){o.position.y += 1.0f;} else{o.position.y -= 1.0f;}
	o.color = i.color;
	return o;
}

float4 PS(vso vo) : COLOR0
{
	return vo.color;
}
А на счет w-координаты есть инфа? Или как еще можно идентифицировать каждую частицу в шейдере?

И еще вопрос: есть функции для передачи в шейдер инфу всякую, ОК. Беру из документации одну такую, и тут компилятор как заорет! Грит, Я положил свой массив туда где якобы должен быть хэндл. Ну ладно - смотрю входные параметры этой функции а там - И вправду нужен какой-то Handle value! НУ ЛАДНО, думаю мож надо передать каким-то макаром адрес массива в целочисленном виде - фиг тебе! - сказала студия и Я остался сам на сам с чистым недоумением - чяднт?

ЗЫ: почему ты в выходной структуре вершинного шейдера семантику цвета определил как тексКоординаты?
__________________
Intel Core i3-4005U (1.7 ГГц), 4 ГБ ОЗУ, nVidia GeForce 940M 4 ГБ, Win8.1

Последний раз редактировалось ANIK123, 09.05.2012 в 09:30.
(Offline)
 
Ответить с цитированием