RayTracingonOneWeek 目录
前言
- 本书适合从零接触去学习
- 简单容易上手
推荐
0. 概述
1. CodeBlocks
环境搭建C++
程序
- 官网下载
安装后的编译设置:
Debugger
设置:
运行:
2. 目标
- 本书目标就是创建出此图:
1. 输出图像
实现一个ppm
例子:
- 像素行以行从左到右列出
- 行从头到尾列出
- 按照惯例来看,每个
R/G/B
的范围是从 0.0 0.0 0.0 到 1.0 1.0 1.0 ,稍后将会内部应用高动态范围,将色调图映射到 0 0 0到 1 1 1的范围
- 红色从左到右由黑变红
- 绿色从底向上,由黑变绿
- 红绿相加为黄色,右上角是黄色
#include <iostream>
#include <fstream>
using namespace std;
int main(void) {
// 输出文件
ofstream outfile("./result/toneMap.txt", ios_base::out);
int nx = 200;
int ny = 100;
outfile << "P3\n" << nx << " " << ny << "\n255\n";
for (int j = ny - 1; j >= 0; j --){
for(int i = 0; i < nx; i ++) {
float r = float(i) / float(nx);
float g = float(j) / float(ny);
float b = 0.2;
int ir = int(255.99 * r);
int ig = int(255.99 * g);
int ib = int(255.99 * b);
outfile << ir << " " << ig << " " << ib << "\n";
}
}
}
输出结果:
注意
- 需要将代码输出结果放到文件中
- 用
PPM Viewer
文件打开源代码文件,这里推荐XnView