Тема: C3D Engine
Показать сообщение отдельно
Старый 27.07.2012, 12:19   #174
pozitiffcat
Мастер
 
Аватар для pozitiffcat
 
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений
(для 533 пользователей)
Ответ: C3D Engine

Например так:
class SHCallback : public ocge::IShaderCallback
{
	ocge::Oint mycolor;
	ocge::Oint MVP;
	glm::mat4 VP;
public:
	void onCreate(ocge::IShader* shader)
	{
		mycolor = shader->getUniformHandle("mycolor");
		MVP = shader->getUniformHandle("MVP");
	}
	void onEntityRender(ocge::IShader* shader, ocge::IEntity* entity)
	{
		glm::mat4 mvp = VP * entity->getModelMatrix(true);
		shader->setUniformMat4fv(MVP, 1, glm::value_ptr(mvp));
		if(entity->getName() == "cube")
			shader->setUniform4f(mycolor,0,1,0,1);
		else
			shader->setUniform4f(mycolor,1,0,0,1);
	}
	void onSceneRender(ocge::IShader* shader, ocge::ISceneManager* smgr)
	{
		VP = engine->getProjectionMatrix() * smgr->getCamera()->getViewMatrix();
	}
};
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
HolyDel (27.07.2012)