Тема: axelynx
Показать сообщение отдельно
Старый 17.01.2012, 20:50   #226
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
разбор простейшего шейдера.
вершинный:
uniform mat4 modelviewproj;

layout(location=VA_POSITION) in vec3 position;

void main(void)
{
	gl_Position     = modelviewproj * vec4(position,1.0);
}
в первой строке получаем стандартный юниформ. Это mvp матрица. Ее считает и посылает движок.
layout(location=VA_POSITION) in vec3 position; (пока layout(location=0))
здесь в вершинный шейдер передается один из аттрибутов вершины. а именно позиция. (все системные аттрибуты можно глянуть здесь: http://code.google.com/p/axelynx/sou...ource/saSpec.h)

далее эта позиция в локальной системе координат множится на MVP матрицу - чтобы получить позицию вершины в нормированном кубе. Это такой куб (-1,-1,-1,1,1,1). потом к этой позиции применяется еще трансформация вьюпорта, чтобы получить позицию пикселя в оконных координатах.

out vec4 color;

void main (void)
{
	color = vec4(1.0,0.0,0.0,1.0);
}
задается выходной аттрибут color.
и пишется в него значение.

если нужно несколько слоев (MRT), то можно использовать записи вида:
layout(location=0) vec4 color0;
layout(location=1) vec4 color1;
layout(location=2) vec4 color2;
layout(location=3) vec4 color3;
ну вот как то так.

HolyDel, а у тебя есть схема какая-нибудь которая показывает целиком архитектуру и устройство движка, чтобы было понятно как там все взаимосвязано и как работает?
нетъ

У тебя как хранение объектов организовано (в плане доступа к ним со стороны движка)?
храню указатель предков. динамическая типизация.

Просто я вот думаю, вот например есть объекты разных типов (шаблонные классы), и их нужно как то хранить в структуре похожей на связанный список. Но ведь связанные списки могут хранить объекты только одного типа. И я так понимаю что используя только статическую типизацию такой связанный список с объектами разного типа вообще нельзя сделать. Можно отказаться от шаблонов в пользу наследования, но гибкость теряется. Может разнотипные объекты как то по другому надо хранить?
шаблоны используются по минимому. мне вполне хватает наследования.
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо HolyDel за это полезное сообщение:
4yBa4Ok (18.01.2012), LLI.T.A.L.K.E.R. (26.01.2012), Samodelkin (17.01.2012)