1#ifndef DANDELION_UTILS_RAY_H
2#define DANDELION_UTILS_RAY_H
25 Eigen::Vector3f origin;
26 Eigen::Vector3f direction;
100 const Eigen::Matrix4f model);
Ray generate_ray(int width, int height, int x, int y, Camera &camera, float depth)
给定成像平面的宽度和高度、成像平面上的坐标、成像平面的深度和相机,生成一条射线。
定义 ray.cpp:28
std::optional< Intersection > naive_intersect(const Ray &ray, const GL::Mesh &mesh, const Eigen::Matrix4f model)
用朴素方法判断射线是否与给定的 mesh 相交。
std::optional< Intersection > ray_triangle_intersect(const Ray &ray, const GL::Mesh &mesh, size_t index)
判断光线ray是否与某个面片相交
定义 ray.cpp:44
表示观察点的相机,既可以用于预览视角,也可以用于渲染视角。
定义 camera.h:22
用于场景预览渲染的 Mesh 类。
定义 gl.hpp:220
Eigen::Vector3f normal
定义 ray.h:48
Intersection()
定义 ray.cpp:24
std::size_t face_index
定义 ray.h:44
Eigen::Vector3f barycentric_coord
定义 ray.h:46