Skip to content

API 概览

CUDA Ray Tracer 的核心 API 结构。

模块结构

include/
├── core/           # 核心工具
├── geometry/       # 几何系统
├── rendering/      # 渲染系统
├── scene/          # 场景管理
└── image/          # 图像输出

核心模块

core/

基础数据类型和工具函数。

文件说明
vec3.cuh3D 向量类
ray.cuh光线类
constants.cuh物理常数
random.cuh随机数生成
cuda_utils.cuhCUDA 辅助宏

geometry/

几何图元和加速结构。

文件说明
sphere.cuh球体图元
plane.cuh平面图元
aabb.cuh轴对齐包围盒
bvh.cuhBVH 加速结构
hit_record.cuh相交记录

rendering/

渲染核心逻辑。

文件说明
renderer.cuh主渲染器
kernels.cuhCUDA kernel 函数
phong.cuhBlinn-Phong 着色
camera.cuh相机模型
material.cuh材质系统

scene/

场景配置和管理。

文件说明
scene.cuh场景容器
presets.cuh预设场景

image/

图像输出处理。

文件说明
ppm.cuhPPM 文件写入
tone_mapping.cuh色调映射

渲染流程

使用示例

基本渲染

cpp
#include "renderer.cuh"
#include "scene/presets.cuh"

int main() {
    // 创建场景
    Scene scene = create_demo_scene();

    // 配置渲染器
    Renderer renderer(800, 600);
    renderer.set_scene(scene);

    // 渲染
    renderer.render();

    // 输出
    renderer.save_ppm("output.ppm");

    return 0;
}

路径追踪

cpp
#include "renderer.cuh"

int main() {
    Renderer renderer(1920, 1080);
    renderer.set_scene(create_cornell_box());
    renderer.set_mode(Mode::PathTrace);
    renderer.set_samples(128);

    renderer.render();
    renderer.save_ppm("cornell.ppm");

    return 0;
}

详细文档

Technical Whitepaper · Built with VitePress