[6.837]A3:OpenG应用和Phong着色模型

任务概述

本次作业中,我们将向场景中添加实时交互预览,同时为之前的光线追踪器增加Phong着色模型。为了达到交互显示,我们将使用OpenGLAPI在显卡上快速渲染三维多边形。我们将能够实时预览场景并且改变视点,接下来用光线追踪器来渲染高质量的图像。许多基础结构在之前的作业中已经构建好,我们只需要向API传递正确的三角形绘制指令或者绘制各种Object3D类的图元。在OpenGL中,API接受所有的透视投影和几何变换,并且将多边形光栅化,并且为每个多边形绘制正确的像素点。除此之外,我们的架构提供了用户界面和鼠标控制摄像机。

实现细节

1.为光线追踪器添加一个可视化预览窗口,使用glCanvas类。在主程序中创建一个实例,调用如下函数初始化:

void glCanvas::initialize(SceneParser *_scene, void (*_renderFunction)(void));

初始化程序输入两个参数,第一个是全局场景指针,第二个是执行光线追踪的函数。glCanvas类建立的目的是使绘制函数没有参数输入并且返回void。从实时界面中,我们可以通过按下键盘r键进行绘制。一旦初始化程序调用,glCanvas将会控制整个应用程序并且监听所有的键盘鼠标消息。通过按下键盘q退出。
2.修改Camera类来控制交互摄像机。
3.绘制三角形的方法
4.绘制平面的方法
OpenGL中并不能存储一个无限延展的平面,由于长度限制,数字最多不能超过 106 。因此对于平面的绘制,我们将其当作一个很大的长方形,长方形的边长可以任意大,只要不超过表达长度限制即可。计算长方形顶点的方法如下:
平面方程为: Ax+By+Cz+D=0 ,法向量 N⃗ =(A,B,C) ,由于空间中只有这个平面上的向量垂直于法向量,因此我们可以任取空间中一个向量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值