Переделка метода render
This commit is contained in:
		
							parent
							
								
									153c905ba5
								
							
						
					
					
						commit
						a81dfa1ffe
					
				| @ -3,6 +3,7 @@ | |||||||
| 
 | 
 | ||||||
| #include "Buffers.h" | #include "Buffers.h" | ||||||
| #include "Texture.h" | #include "Texture.h" | ||||||
|  | #include "Shader.h" | ||||||
| 
 | 
 | ||||||
| #include <GLM/glm.hpp> | #include <GLM/glm.hpp> | ||||||
| #include <GLM/gtc/quaternion.hpp> | #include <GLM/gtc/quaternion.hpp> | ||||||
| @ -72,7 +73,7 @@ class Model : public Node | |||||||
|         virtual ~Model(); |         virtual ~Model(); | ||||||
| 
 | 
 | ||||||
|         void render(); // Вызов отрисовки без uniform-данных
 |         void render(); // Вызов отрисовки без uniform-данных
 | ||||||
|         void render(const GLuint &model_uniform, UBO &material_buffer); // Вызов отрисовки
 |         void render(ShaderProgram &shaderProgram, UBO &material_buffer); // Вызов отрисовки
 | ||||||
| 
 | 
 | ||||||
|         void load_verteces(glm::vec3* verteces, GLuint count); // Загрузка вершин в буфер
 |         void load_verteces(glm::vec3* verteces, GLuint count); // Загрузка вершин в буфер
 | ||||||
|         void load_indices(GLuint* indices, GLuint count); // Загрузка индексов в буфер
 |         void load_indices(GLuint* indices, GLuint count); // Загрузка индексов в буфер
 | ||||||
|  | |||||||
| @ -17,7 +17,7 @@ class Scene | |||||||
|         Scene(const Scene ©); // Конструктор копирования
 |         Scene(const Scene ©); // Конструктор копирования
 | ||||||
|         Scene& operator=(const Scene& other); // Оператор присваивания
 |         Scene& operator=(const Scene& other); // Оператор присваивания
 | ||||||
| 
 | 
 | ||||||
|         void render(const GLuint &model_uniform, UBO &material_buffer); // Рендер сцены
 |         void render(ShaderProgram &shaderProgram, UBO &material_buffer); // Рендер сцены
 | ||||||
| 
 | 
 | ||||||
|         Node root; // Корневой узел
 |         Node root; // Корневой узел
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -263,10 +263,10 @@ void Model::render() | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Вызов отрисовки
 | // Вызов отрисовки
 | ||||||
| void Model::render(const GLuint &model_uniform, UBO &material_buffer)  | void Model::render(ShaderProgram &shaderProgram, UBO &material_buffer)  | ||||||
| { | { | ||||||
|     // Загрузим матрицу трансформации
 |     // Расчитаем матрицу трансформации
 | ||||||
|     glUniformMatrix4fv(model_uniform, 1, GL_FALSE, &getTransformMatrix()[0][0]); |     glUniformMatrix4fv(shaderProgram.getUniformLoc("model"), 1, GL_FALSE, &this->getTransformMatrix()[0][0]); | ||||||
| 
 | 
 | ||||||
|     // Подключаем текстуры
 |     // Подключаем текстуры
 | ||||||
|     texture_diffuse.use(); |     texture_diffuse.use(); | ||||||
|  | |||||||
| @ -27,10 +27,10 @@ Scene& Scene::operator=(const Scene& other) | |||||||
| }  | }  | ||||||
| 
 | 
 | ||||||
| // Рендер сцены
 | // Рендер сцены
 | ||||||
| void Scene::render(const GLuint &model_uniform, UBO &material_buffer)  | void Scene::render(ShaderProgram &shaderProgram, UBO &material_buffer)  | ||||||
| { | { | ||||||
|     for (auto & model : models) |     for (auto & model : models) | ||||||
|         model.render(model_uniform, material_buffer); |         model.render(shaderProgram, material_buffer); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Перестройка узлов выбранного списка
 | // Перестройка узлов выбранного списка
 | ||||||
|  | |||||||
| @ -103,9 +103,6 @@ int main(void) | |||||||
|     // Установка цвета очистки буфера цвета
 |     // Установка цвета очистки буфера цвета
 | ||||||
|     glClearColor(0.0f, 0.0f, 0.0f, 1.0f); |     glClearColor(0.0f, 0.0f, 0.0f, 1.0f); | ||||||
| 
 | 
 | ||||||
|     // Расположение Uniform-переменной
 |  | ||||||
|     GLuint model_uniform = base.getUniformLoc("model"); |  | ||||||
| 
 |  | ||||||
|     // Источник света
 |     // Источник света
 | ||||||
|     LightData light = { {1.0f, 3.0f, 0.0f} // позиция
 |     LightData light = { {1.0f, 3.0f, 0.0f} // позиция
 | ||||||
|                       , {1.0f, 1.0f, 1.0f} // цвет
 |                       , {1.0f, 1.0f, 1.0f} // цвет
 | ||||||
| @ -163,7 +160,7 @@ int main(void) | |||||||
|         glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); |         glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); | ||||||
| 
 | 
 | ||||||
|         // Тут производится рендер
 |         // Тут производится рендер
 | ||||||
|         scene.render(model_uniform, material_data); |         scene.render(base, material_data); | ||||||
| 
 | 
 | ||||||
|         // Активируем базовый буфер кадра
 |         // Активируем базовый буфер кадра
 | ||||||
|         FBO::useDefault(); |         FBO::useDefault(); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user