Переделка камеры
This commit is contained in:
@@ -181,3 +181,11 @@ Camera& Camera::current()
|
||||
else
|
||||
return *p_current;
|
||||
}
|
||||
|
||||
// Данные о камере для шейдера
|
||||
CameraData& Camera::getData()
|
||||
{
|
||||
static CameraData data;
|
||||
data = {getProjection(), getView(), position};
|
||||
return data;
|
||||
}
|
||||
|
||||
@@ -112,7 +112,7 @@ int main(void)
|
||||
};
|
||||
|
||||
// Uniform-буферы
|
||||
UBO cameraUB(sizeof(glm::mat4)*2, 0);
|
||||
UBO cameraUB(sizeof(CameraData), 0);
|
||||
UBO material_data(sizeof(Material), 1);
|
||||
UBO light_data(&light, sizeof(LightData), 2);
|
||||
|
||||
@@ -122,8 +122,7 @@ int main(void)
|
||||
while(!glfwWindowShouldClose(window))
|
||||
{
|
||||
// Загрузка данных о камере
|
||||
cameraUB.loadSub(&Camera::current().getProjection(), sizeof(glm::mat4), 0);
|
||||
cameraUB.loadSub(&Camera::current().getView(), sizeof(glm::mat4), sizeof(glm::mat4));
|
||||
cameraUB.loadSub(&Camera::current().getData(), sizeof(CameraData));
|
||||
|
||||
// Очистка буфера цвета
|
||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||
|
||||
Reference in New Issue
Block a user