Изменение в текстурах буферов
This commit is contained in:
		
							parent
							
								
									42a2aa449c
								
							
						
					
					
						commit
						bdc16665b7
					
				
							
								
								
									
										16
									
								
								src/main.cpp
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								src/main.cpp
									
									
									
									
									
								
							@ -111,7 +111,7 @@ int main(void)
 | 
			
		||||
    gShader.load(GL_FRAGMENT_SHADER, "shaders/gshader.frag");
 | 
			
		||||
    gShader.link();
 | 
			
		||||
    // Установим значения текстур
 | 
			
		||||
    const char* textures_base_shader_names[] = {"tex_diffuse", "tex_ambient", "tex_specular", "tex_heights", "tex_normal"};
 | 
			
		||||
    const char* textures_base_shader_names[] = {"tex_albedo", "tex_roughness", "tex_metallic", "tex_specular", "tex_emitted", "tex_heights", "tex_normal"};
 | 
			
		||||
    gShader.bindTextures(textures_base_shader_names, sizeof(textures_base_shader_names)/sizeof(const char*));
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -160,14 +160,15 @@ int main(void)
 | 
			
		||||
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); // Использование уменьшенных версий mipmap  
 | 
			
		||||
 | 
			
		||||
    // Создадим G-буфер с данными о используемых привязках
 | 
			
		||||
    GLuint attachments[] = { GL_COLOR_ATTACHMENT0, GL_COLOR_ATTACHMENT1, GL_COLOR_ATTACHMENT2, GL_COLOR_ATTACHMENT3, GL_COLOR_ATTACHMENT4 };
 | 
			
		||||
    GLuint attachments[] = { GL_COLOR_ATTACHMENT0, GL_COLOR_ATTACHMENT1, GL_COLOR_ATTACHMENT2, GL_COLOR_ATTACHMENT3, GL_COLOR_ATTACHMENT4, GL_COLOR_ATTACHMENT5 };
 | 
			
		||||
    FBO gbuffer(attachments, sizeof(attachments) / sizeof(GLuint));
 | 
			
		||||
    // Создадим текстуры для буфера кадра
 | 
			
		||||
    Texture gPosition(WINDOW_WIDTH, WINDOW_HEIGHT, GL_COLOR_ATTACHMENT0, 0, GL_RGB16F, GL_RGB); // Позиция вершины
 | 
			
		||||
    Texture gNormal(WINDOW_WIDTH, WINDOW_HEIGHT, GL_COLOR_ATTACHMENT1, 1, GL_RGB16F, GL_RGB); // Нормали
 | 
			
		||||
    Texture gDiffuseP(WINDOW_WIDTH, WINDOW_HEIGHT, GL_COLOR_ATTACHMENT2, 2, GL_RGBA16F); // Диффузная составляющая и коэф. глянцевости
 | 
			
		||||
    Texture gAmbientSpecular(WINDOW_WIDTH, WINDOW_HEIGHT, GL_COLOR_ATTACHMENT3, 3); // Фоновая составляющая и один канал зеркальной
 | 
			
		||||
    Texture gBaseColor(WINDOW_WIDTH, WINDOW_HEIGHT, GL_COLOR_ATTACHMENT2, 2, GL_RGB, GL_RGB); // Базовый цвет материала
 | 
			
		||||
    Texture gRMS(WINDOW_WIDTH, WINDOW_HEIGHT, GL_COLOR_ATTACHMENT3, 3, GL_RGB, GL_RGB); // Шероховатость, металличность, интенсивность блика
 | 
			
		||||
    Texture gID(WINDOW_WIDTH, WINDOW_HEIGHT, GL_COLOR_ATTACHMENT4, 7, GL_RGB32UI, GL_RGB_INTEGER, GL_UNSIGNED_INT); // Идентификатор объекта
 | 
			
		||||
    Texture gEmittedColor(WINDOW_WIDTH, WINDOW_HEIGHT, GL_COLOR_ATTACHMENT5, 8, GL_RGB, GL_RGB); // Излучаемый свет
 | 
			
		||||
    // Создадим буфер рендера под буфер глубины и привяжем его
 | 
			
		||||
    RBO grbo(WINDOW_WIDTH, WINDOW_HEIGHT);
 | 
			
		||||
    gbuffer.assignRenderBuffer(grbo.getHandler());
 | 
			
		||||
@ -181,7 +182,7 @@ int main(void)
 | 
			
		||||
    lightShader.load(GL_FRAGMENT_SHADER, "shaders/lighting.frag");
 | 
			
		||||
    lightShader.link();
 | 
			
		||||
    // Привязка текстур
 | 
			
		||||
    const char* gtextures_shader_names[]  = {"gPosition", "gNormal", "gDiffuseP", "gAmbientSpecular", "sunShadowDepth", "pointShadowDepth", "ssao", "gID"};
 | 
			
		||||
    const char* gtextures_shader_names[]  = {"gPosition", "gNormal", "gBaseColor", "gRMS", "sunShadowDepth", "pointShadowDepth", "ssao", "gID", "gEmittedColor"};
 | 
			
		||||
    lightShader.bindTextures(gtextures_shader_names, sizeof(gtextures_shader_names)/sizeof(const char*));
 | 
			
		||||
    // Загрузка данных о границах каскадов
 | 
			
		||||
    glUniform1fv(lightShader.getUniformLoc("camera_cascade_distances"), CAMERA_CASCADE_COUNT, &camera_cascade_distances[1]);
 | 
			
		||||
@ -517,9 +518,10 @@ int main(void)
 | 
			
		||||
        // Подключаем текстуры G-буфера
 | 
			
		||||
        gPosition.use();
 | 
			
		||||
        gNormal.use();
 | 
			
		||||
        gDiffuseP.use();
 | 
			
		||||
        gAmbientSpecular.use();
 | 
			
		||||
        gBaseColor.use();
 | 
			
		||||
        gRMS.use();
 | 
			
		||||
        gID.use();
 | 
			
		||||
        gEmittedColor.use();
 | 
			
		||||
        // Идентификатор выбранного объекта для обводки
 | 
			
		||||
        glUniform3uiv(lightShader.getUniformLoc("selectedID"), 1, (GLuint*) &selected);
 | 
			
		||||
        // Подключаем текстуры теней
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user