计算机图形学大作业-WenhaoYu

计算机图形学 大作业

5090379126

虞文豪

题目:通过光照及纹理映射,实现高度真实感青花瓷材质的

茶壶向茶杯倒水动画特效。

一. 概述

之前的作业用使用SPH 方法做了一个水流的模拟程序,这次作业在上次

作业的基础上增加了渲染的部分,对SPH 的一些参数以及碰撞检测进行了一

些小的调整。

这次大作业中主完成了的功能有:

1. 建立背景平面

2. 实现茶壶拿起的动画

3. 水蒸汽效果

4. 青花瓷材质

5. 茶壶与茶杯的环境映射及环境映射与纹理叠加

6. 水流的半透明与折射效果

二. 实现

1. 建立背景平面

在第一次作业中我使用3DMAX 做了一个简易的小房间,这次作业中为小房间内的东西

添加了纹理贴图使得房间看起来更加美观与真实。

背景房间:

2. 实现茶壶拿起的动画

茶壶动画的实现通过两个数组来完成,一个数组表明一系列的茶壶位置变化向量,另一

个数组表明一系列的茶壶旋转弧度,这里的旋转是沿着z 轴进行的,因为茶壶在被拿起过程

中可以认为另两个方向是不转的。

倒水中的茶壶:

3. 水蒸汽效果

这次作业中实现了一个粒子系统来模拟水蒸汽的效果。粒子系统中的每个粒子具有生命、

速度、位置、旋转、大小等属性。

粒子的生命每帧减少。粒子的速度在X 与Z 方向递减,在Y 方向有少量递增,这样保证

了粒子总体是往上移动的,粒子的初始速度随机。每次更新时,粒子会获得一个随机的少量

旋转来增加一些动态。每个粒子初始大小随机,随着时间流逝粒子会先达到最大的大小,然

后开始缩小,在粒子死亡时大小接近于0 。

粒子的渲染使用了一个小立方体,然后通过OPENGL 的blend 以及depthmask 来创造粒

子密的地方颜色浓,粒子稀的地方颜色淡的效果。

蒸汽效果:

4. 青花瓷材质

青花瓷材质的制作是从网上找了一张青花瓷的贴图,然后把茶壶与茶杯的模型放到

3DMAX 中,再用uvw 展开调整贴图的位置使得模型更像一个青花瓷制品。

青花瓷材质:

5. 茶壶与茶杯的环境映射及环境映射与纹理叠加

茶壶与茶杯的环境映射通过使用OPENGL 的CUBE MAP 实现,由于我的场景不是现有的

六面场景而是一个房间模型,因此我通过手动设置以及截图,把场景的六个方向分别进行了

截图构成了CUBE MAP 的六个面。

在绘制茶壶与茶杯前在OPENGL 的纹理矩阵中对CUBE MAP 纹理进行了旋转以配合当前

的视角。

环境映射与纹理的叠加使用了ALPHA 和BLEND 来实现。在读取CUBE MAP 的六张图片

时,通过手动修改图片数据,将图片从原本的24 位 RGB 格式改为32 位 RGBA 格式,并把

Alphs 位赋为90 。然后在同样的位置,画一个比之前稍大一点的茶壶(茶杯) 。这里的做法是

把所有节点都向法向量移动一点点。设置适当的blend 函数。这样就能把环境映射和茶壶(杯)

的纹理很好地结合起来。

环境映射:

结合后效果:

6. 水流的半透明与折射效果

水流的渲染是通过render to texture 以及cg,即c for graphics 这样一个gpu 编程语言来

做的。它本来自带了一个 refract 函数用以计算折射,但是它更适合六面背景中的一滩水,

而不是装在不透明容器中的水,而且由于我的cube map 颜色比较杂,试了这个方法以后发

现效果很不好,因此这里参考

/presentations/2010/gdc/Direct3D_Effects.pdf 进行了实

现,但是由于实现过程中遇到不少问题,因此只是参考了其中的几个步骤,而不是完全实现

了文章,因此效果也有差异。

水流渲染中用到了5 个纹理缓存,分别用来储存:背景、水流mask、水流的法向图以

及水流的厚度图,还用到了3 组cg 写的shader 进行处理。

计算机图形学大几学的,计算机图形学大作业-WenhaoYu.PDF相关推荐

  1. 计算机二级主要是学什么,计算机二级考试内容是什么

    计算机二级考试内容是什么 现在的大学生,大多数要求计算机过二级.但是很多人不知道该学习,报考哪一个科目的计算机二级考试.计算机二级考试内容可以任意选择吗?下面是小编精心收集的计算机二级考试内容是什么, ...

  2. 计算机控制技术曹立学答案,计算机控制技术(曹立学)

    计算机控制技术(曹立学) 语音 编辑 锁定 讨论 上传视频 <计算机控制技术(曹立学)>是2012年西安电子科技大学出版社出版的图书,作者是曹立学.张鹏超. 书    名 计算机控制技术( ...

  3. 学计算机编程应该先学什么,计算机编程好学吗?计算机编程入门应该先学什么?...

    原标题:计算机编程好学吗?计算机编程入门应该先学什么? 计算机编程好学吗?想要进入编程行业,入门最为关键,经常能听到很多人说,想学习编程不难,入门更为简单,只要你对他感兴趣就能学,但是至于学的怎么样, ...

  4. 计算机B级怎么学,全国计算机等级考试教程一级B

    全国计算机等级考试教程一级B 语音 编辑 锁定 讨论 上传视频 <全国计算机等级考试教程一级B>依据教育部考试中心最新发布的<全国计算机等级考试大纲>以及作者多年对等级考试的研 ...

  5. 大数据学情分析_大数据时代如何轻松做好学情分析

    学情分析是运用现代教学设计理论产生的,是教学设计系统中影响学习系统最终设计的重要因素之一.学情分析通常被称为"教学目标分析"或"学生分析".研究学生的实际需要. ...

  6. 计算机基础为什么要学word,计算机基础中word教学探讨

    原标题:计算机基础中word教学探讨 采用任务教学可以很好地培养学生的实践动手能力和分析问题.解决问题的能力,而在任务教学中的成败则取决于良好的任务设计.本人在学校从事<计算机基础>教学多 ...

  7. 计算机一级execl怎么学,【计算机一级 excel】大学计算机一级excle

    问,计算机一级考试EXCLE部分的主要操作? 找个习题多联系 一级计算机考试Excel怎么计算像百分百.平均成绩之类的,关键是怎么输入.麻烦详细点. 1.首先是最基平均值计算,直接套用公式即可. 公式 ...

  8. 西北工业大学 计算机学院 姜,姜学锋(计算机学院)老师 - 西北工业大学 - 院校大全...

    姜学锋 姓名: 姜学锋 性别: 男 姜学锋老师的简介 西北工业大学计算机公共基础教学部助理,程序设计课程负责人. 做好教学是我的职责,在我的教学生涯中,有一个信念始终是清晰的.鲜明的:站在学生的立场做 ...

  9. 中国地质大学的计算机专业咋样,中国地质大学武汉计算机专业好还是武汉理工大学的好...

    技校网专门为您推荐的类似问题答案 问题1: 武汉理工大学机械专业的研究生 还不错啊,不过专业排名在全国不怎么显 提问人的追问 2011-03-03 18:32 和北京科技大相比呢? 团队的补充 201 ...

最新文章

  1. Spring Cloud Config采用Git存储时两种常用的配置策略
  2. 设计模式之简介及其分类
  3. jMeter 用户自定义变量的存储方式
  4. 第一章 计算机系统概述 1.2.2 各硬件部分的介绍 [计算机组成原理笔记]
  5. C语言编写一个备份文件,2014年3月二级C语言上机题库备份.doc
  6. android 自定义组合键,自定义快捷操作 安卓虚拟Home键设置技巧
  7. linux修改挂载文件系统权限,Linux配置启动挂载:fstab文件详解
  8. 【HW2020漏洞回顾】深信服EDR两大漏洞(转载)
  9. 群晖7.X关闭双重验证(OTP)的方法
  10. python实现最大公约数最小公倍数求法
  11. 20多年老码农的IT学习之路
  12. 金融专硕可以用计算机吗,金融硕士考研:考研金融431能带计算器吗?
  13. 老年程序员的出路何在
  14. 认真过好你的二十几岁
  15. SSH2.0编程 ssh协议过程实现(转)
  16. 服务搭建篇(一) 搭建基于prometheus + node_exporter + grafana + Alertmanager 的监控报警系统 , 保姆级教程
  17. jacob java excel_12、借助Jacob实现Java打印报表(Excel、Word)
  18. python数独代码_Python 解数独(Sudoku)
  19. js中写文档write和innerHTML的区别
  20. boost::python::detail::destroy_referent相关的测试程序

热门文章

  1. TypeScript 让你不会想用回 JavaScript
  2. 微软想让所有人都成为开发者?
  3. GitHub 上开源哪家强?| 原力计划
  4. 华为云再“祭”神器!
  5. 山东到底有没有互联网?
  6. 百度近五年最年轻高管团队出炉,能否“翻盘”成功?
  7. 马云:腾讯是阿里的成长伴侣;华为 2 万 CNBG 员工“投奔”余承东;18 岁学生索赔苹果 10 亿美元 | 极客头条...
  8. 漫画:分布式缓存服务器扛不住了怎么办?| 技术头条
  9. 晋升工程经理几个月后,我选择退回编程岗位的起点
  10. 引起 Edge 浏览器远程代码漏洞的幕后黑手已出现!