Ray Tracing in One Week - 笔记与总结

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";
        }
    }
}

输出结果:
在这里插入图片描述

注意

  1. 需要将代码输出结果放到文件中
  2. PPM Viewer文件打开源代码文件,这里推荐XnView

猜你喜欢

转载自blog.csdn.net/u013362192/article/details/113867472
今日推荐