67 Eigen::Matrix<uint8_t, 4, 1>
color;
87 std::vector<uint8_t>
render(
const Eigen::MatrixXd &vertices,
const Eigen::MatrixXi &
faces,
const Eigen::MatrixXi &faces_id,
88 int width,
int height,
89 const Eigen::Vector3d &camera_position,
const double camera_fov,
const double camera_near,
const double camera_far,
const bool is_perspective,
const Eigen::Vector3d &lookat,
const Eigen::Vector3d &up,
90 const Eigen::Vector3d &ambient_light,
const std::vector<std::pair<Eigen::MatrixXd, Eigen::MatrixXd>> &lights,
91 std::vector<Material> &materials);
std::vector< Eigen::VectorXi > faces
FragmentAttributes(double r=0, double g=0, double b=0, double a=1)
Eigen::Matrix< uint8_t, 4, 1 > color
FrameBufferAttributes(uint8_t r=0, uint8_t g=0, uint8_t b=0, uint8_t a=255)
std::function< FragmentAttributes(const VertexAttributes &, const UniformAttributes &)> FragmentShader
std::function< VertexAttributes(const VertexAttributes &, const UniformAttributes &)> VertexShader
std::function< FrameBufferAttributes(const FragmentAttributes &, const FrameBufferAttributes &)> BlendingShader
static VertexAttributes interpolate(const VertexAttributes &a, const VertexAttributes &b, const VertexAttributes &c, const double alpha, const double beta, const double gamma)
VertexAttributes(double x=0, double y=0, double z=0, double w=1)
std::vector< uint8_t > render(const Eigen::MatrixXd &vertices, const Eigen::MatrixXi &faces, const Eigen::MatrixXi &faces_id, int width, int height, const Eigen::Vector3d &camera_position, const double camera_fov, const double camera_near, const double camera_far, const bool is_perspective, const Eigen::Vector3d &lookat, const Eigen::Vector3d &up, const Eigen::Vector3d &ambient_light, const std::vector< std::pair< Eigen::MatrixXd, Eigen::MatrixXd > > &lights, std::vector< Material > &materials)
Eigen::Vector3d specular_color
Eigen::Vector3d diffuse_color