Dandelion 1.1.1
A light-weight 3D builder for educational usage
载入中...
搜索中...
未找到
rasterizer_renderer.h
浏览该文件的文档.
1#ifndef DANDELION_RENDER_RASTERIZER_RENDERER_H
2#define DANDELION_RENDER_RASTERIZER_RENDERER_H
3
4#include <vector>
5#include <list>
6#include <queue>
7#include <array>
8
9#include <Eigen/Core>
10#include <Eigen/Geometry>
11
12#include "../platform/gl.hpp"
13#include "../scene/light.h"
14#include "../scene/camera.h"
15#include "graphics_interface.h"
16
17/*!
18 * \file render/rasterizer_renderer.h
19 * \ingroup rendering
20 * \~chinese
21 * \brief 光栅化渲染器中顶点处理、片元处理两个阶段的实现。
22 */
23
24/*!
25 * \ingroup rendering
26 * \~chinese
27 * \brief 负责执行顶点着色器的工作线程。
28 */
30{
31public:
32 void input_vertices(const Eigen::Vector4f& positions, const Eigen::Vector3f& normals);
33 VertexShaderPayload (*vertex_shader_ptr)(const VertexShaderPayload& payload);
34 void worker_thread();
35
36private:
37 std::queue<VertexShaderPayload> vertex_queue;
38 std::mutex queue_mutex;
39};
40
41/*!
42 * \ingroup rendering
43 * \~chinese
44 * \brief 负责执行片元着色器的工作线程。
45 */
47{
48public:
49 void worker_thread();
50
51 Eigen::Vector3f (*fragment_shader_ptr)(const FragmentShaderPayload& payload,
52 const GL::Material& material,
53 const std::list<Light>& lights, const Camera& camera);
54
55private:
56};
57
58#endif // DANDELION_RENDER_RASTERIZER_RENDERER_H
负责执行片元着色器的工作线程。
定义 rasterizer_renderer.h:47
负责执行顶点着色器的工作线程。
定义 rasterizer_renderer.h:30
一些公用的渲染管线接口。
表示观察点的相机,既可以用于预览视角,也可以用于渲染视角。
定义 camera.h:22
片元着色器的输入单位。
定义 graphics_interface.h:45
物体材质。
定义 gl.hpp:189
定义 graphics_interface.h:27