西安科技大学计算机图形学课程设计,长方体体的光照效果_计算机图形学课程设计西安科技大学.doc...

长方体体的光照效果_计算机图形学课程设计西安科技大学

西安科技大学

计算机图形学课程设计

题目: 长方体体的光照效果

专业班级: 信计1102班

小组成员:陈维多1108060216

邹世林1108060224

左 力1108060225

李 优1108060229

日期: 2013年1月2日

目录

一 课程设计题目………………………………………………… 3

1.题目要求………………………………………………… 3

2.任务……………………………………………………… 3

二 任务分析算法介绍…………………………………………… 3

1.任务分析………………………………………………… 3

2.算法介绍………………………………………………… 4

三 总体设计……………………………………………………… 5

1.定义三维齐次向量结构体……………………………… 5

2.定义三维齐次坐标结构………………………………… 5

3.定义面的结构………………………………………… 6

4.定义点的结构………………………………………… 6

5.长方体顶点定义及初始化……………………………… 7

6. 面表…………………………………………………… 7

7.定义点光源、视线方向、光照方向…………………… 8

8.各面可见性计算和判断………………………………… 9

9.窗口-视区变换………………………………………… 11

10.路径填充……………………………………………… 12

四 流程图……………………………………………………… 13

五 源程序……………………………………………………… 14

六 程序运行效果图…………………………………………… 27

七 总结………………………………………………………… 28

参考文献………………………………………………………… 29

课程设计题目

长方体体的光照效果

1.题目要求

对长方体,建立一个点光源,采用环境光和点光源漫反射光的光照模型,应用FLAT明暗处理方法,显示平行投影后的长方体光照效果。

2.任务

本题目主要包括五个任务,

1)长方体表面模型的建立

2)长方体的可见面判断

3)可见面的背光性判断

4)可见面光照计算

5)可见面光照效果显示

附加:通过键盘上下左右按键对图形进行旋转

任务分析算法介绍

1.任务分析

任务1)中,定义三维齐次坐标结构和面的结构;定义顶点表和面表,对长方体绕X轴旋转和绕Y轴旋转。

任务2)中对每一个面计算其外法向量及可见性

任务3)中对每个可见面计算其光线向量,并判断其是否为背光面。

任务4)计算每个见光面的环境光和点光源的漫反射分量。

任务5)用该面的光强显示该可见面

附加: 人机交互

2.算法介绍

1)旋转变换

绕X轴旋转变换的坐标表示

绕Y轴旋转变换的坐标表示

2) 平行投影

在XOY平面投影后坐标

3) 环境光模型

物体没有受到光源的直射,但其表面仍有一定亮度,这是由于环境光的作用。

表示环境光反射强度

表示环境光反射率

表示环境光入射强度

4)漫反射光模型

漫反射光可认为是在点光源的照射下,光被物体表面吸收后,然后重新反射出来的光。

表示漫反射光强度

表示漫反射反射率

表示点光源入射强度大小

入射光与物体表面法矢量夹角

三、总体设计

1.定义三维齐次向量结构体

typedef struct Vector3D

{

float x;

float y;

float z;

int f; //f表示所在的平面的编号

}VECTOR;

2. 定义三维齐次坐标结构

typedef struct tagHOMOCOORD

{

float x;

float y;

float z;

float w;

}HOMOCOORD;

3.定义面的结构

typedef struct tagPLANE

{

int v0, v1, v2, v3;

VECTOR n; //外法向量

HOMOCOORD center; //中心点

float Id; //漫反射光强

int flag;//标识符

float kd; //漫反射率

float ka; //环境光反射率

float Ie; //环境光反射光强

float I; //光强

}PLANE;

4.定义点的结构

typedef struct tagMYPOINT

{

float x,y;

}MYPOINT;

5.长方体顶点定义及初始化

pts=new HOMOCOORD[ptn];

pts[0].x= 1;pts[0].y= 2; pts[0].z= 1; pt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值