Ray Tracing 的c++简单实现

这篇博客介绍了作者在计算机图形学实验中实现的Ray Tracing算法,使用C++编写,并与OpenGL渲染效果进行了对比。文章详细阐述了场景创建、光线追踪细节,包括光线与平面、球体、三角形的交点计算,以及反射和阴影处理。最后,展示了两种方法的渲染结果并分析了差异。
摘要由CSDN通过智能技术生成

计算机图形学实验,实现ray tracing算法并与opengl渲染效果对比。

原文及code参见:我的Github

Ray Tracing

In this assignment,I implemented the Ray-Tracing algorithm in c++.I didn’t use any library but the CImg library,only use to read and display pixel values.

Creating the scene:

The scene is defined in an xml file.The entire scene encompassed by the label:

<scene>...</scene>

Lights:

The lights are defined in label <lights>...</lights>.In my code,lights are all point sources and all that need specification is their position and color.

<light>
            <position x="0" y="9" z="-15.0"/>
            <color r="1.0" g="1.0" b="1.0"/>
</light>

Planes:

We need three elements to define a plane:a point in the plane、the plane’s normal vector and its color.Of course,we need to define its material.

    <plane>
                <point x="0.0" y="-10.0" z="0.0"/>
                <normal x="0.0" y="10.0" z="0.0"/>
                <color r="1.0" g="1.0" b="1.0" />
                <specs ref="0" 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值