Example #1
0
	void RenderScene()
	{
		// First render shadows
		renderer_->CullFace(sht::graphics::CullFaceType::kFront);
		ShadowPass();
		renderer_->CullFace(sht::graphics::CullFaceType::kBack);

		if (show_shadow_texture_)
		{
			quad_shader_->Bind();
			quad_shader_->Uniform1i("u_texture", 0);

			renderer_->ChangeTexture(shadow_depth_rt_, 0);
			quad_->Render();
			renderer_->ChangeTexture(nullptr, 0);

			quad_shader_->Unbind();
		}
		else
		{
			// Render objects
			object_shader_->Bind();
			object_shader_->UniformMatrix4fv("u_projection_view", projection_view_matrix_);
			object_shader_->UniformMatrix4fv("u_depth_bias_projection_view", depth_bias_projection_view_matrix_);

			renderer_->ChangeTexture(shadow_depth_rt_, 0);

			RenderObjects(object_shader_);

			renderer_->ChangeTexture(nullptr, 0);

			object_shader_->Unbind();
		}
	}
Example #2
0
int ShadowMapStage::Execute(RenderingCamera * Camera, Spatial * spatial, RenderQueue* renderQueue, WorkQueue * Queue, Vector<OsEvent*>& Events) {
    ShadowPass(Camera, spatial, renderQueue, Queue, Events);
    return 0;
}