计算机动画 于金辉 CAD&CG国家重点实验室 2018/11/24 浙江大学.

Slides:



Advertisements
Similar presentations
计算机动画与仿真. 计算机动画是计算机图形学和艺术相结合 的产物,它是伴随着计算机硬件和图形算 法高速发展起来的一门高新技术,它综合 利用计算机科学、艺术、数学、物理学和 其它相关学科的知识在计算机上生成绚丽 多彩的连续的虚拟真实画面,给人们提供 了一个充分展示个人想象力和艺术才能的 新天地。 计算机动画是计算机图形学和艺术相结合.
Advertisements

完美殺人筆記簿 【爸!我受夠了!】 第七組組員: 林正敏 陳筱涵 李蓓宇 許純宜 羅玉芬 謝文軒.
爱护牙齿爱护牙齿 AI HU YA CHI AI HU YA CHI 进入 爱牙日的由来 你对牙齿知道多少 保护牙齿的健康 预防蛀牙 刷牙要三好 2004 级护理 2 大组 郭赛金 朱光影 李蓓 赵文娟.
第二十九章 医学原虫 一、教学目的 熟悉:溶组织内阿米巴、阴道毛滴虫的生活史、致病 性、实验诊断与防治原则;间日疟原虫的生活史。 应用:疟疾的发作、复发、再燃及凶险型疟疾的发生 机制和临床表现;疟原虫的实验诊断与防治原则。 了解 : 溶组织内阿米巴、阴道毛滴虫、间日疟原虫的 红內期形态。 二、教学方法.
群体性心因性反应 英德市疾病预防控制中心 孙蕊蕊 2010 年 11 月. 一、何谓群体性心因性反应  群体性心因性反应:又称群发性癔症,是一 种精神或心理因素引起的的一种在临床上只 有精神或神经系统症状为主,而没有任何可 以检出的器质性病变。意识不丧失,易受心 理暗示影响,使病情加重或减轻。
第四节 关 格 第四节 关 格 医科大学附属中医医院外科教研室 高昌杰 病 名 关格首载于《内经》,或指脉象或言 病机。《伤寒论》将小便不通和吐逆 为主症者称为关格。巢元方等则以大 小便俱不通为关格。至南宋时期,张 锐综合仲景与巢氏之说,提出关格病 上有吐逆,下有大小便不通。近代对 本病的认识逐渐统一于仲景,故本书.
电子商务专业人才培养方案 五年制高职. 一、招生对象、学制与办学层次  (一)招生对象:初中毕业生  (二)学制:五年  (三)办学层次:专科.
医科大学附属中医医院内科教研室. 一、腰痛定义 二、腰痛历史沿革 三、腰痛病因病机 四、腰痛范围 五、腰痛诊断 六、辨证要点 七、治疗原则 八、分型论治 九、其他疗法 十、复习思考题 十一、临床病案.
海伦深深地感激自己的老师, 她说:假如给我三天光明,我 首先要长久地凝视我的老师 — — 安妮 · 莎莉文 !
肺癌. 概述 w 定义  肺癌或称支气管肺癌,是由于正气内虚, 邪毒外侵,痰浊内聚,气滞血瘀, 阻结于 肺,肺失肃降所致,以咳嗽、咯血、胸 痛发热、气急为主要临床表现的肺部恶 性肿瘤。
揭日本人让人理解不了的20件事 今天先来看看日本人的自我剖析︰日本人的20个“为什么”?这“20个为什么”的内容来源于日本影视名人北野武所主持的一个节目。虽然不是网友来信中提出过的问题,但看看日本人自己对自己的分析,是挺有意思的。而且,仔细看看下面这“日本人的20个为什么”,会发现其实有些东西对于中国人来说并不陌生。毕竟汉字圈里的文化,是有共融之处的。
医疗事故处理法律制度 ——概 述 张华.
第二章 中药药性理论的现代研究 掌握中药四性的现代研究 掌握中药五味的现代研究 掌握中药毒性的现代研究 了解中药归经的现代研究.
指導老師:邱敏慧老師 姓名:徐鈺琁 班級:114 座號:33
做 荷 包 的 主 人 第 一 桶 金 督導 張宏仁 財團法人「張老師」基金會 桃園分事務所 督導 張宏仁
治癒肺癌 的妙方.
U8V10.0顾问验证新增应用培训-总账 用友软件股份有限公司 职务:需求 姓名:郄文静 2011年2月15日.
報告書名:父母會傷人 班級:二技幼四甲 姓名:吳婉如 學號:1A2I0034 指導老師:高家斌
泌尿外科疾病病人的护理 泸医附院外科 杨昌美.
微分几何 微分几何课程建设组.
102學年度上學期 小班 ~ “快樂來上學”回顧與分享.
班級:醫管3B 組別:第二組 組員:王品媛、郭雅瑄、謝淑玲、蔡孟蔙
医疗纠纷的 防范和处理 医务部 林星方.
與宋元思書 吳均.
媽,我們真的不一樣 青少年期與中年期 老師: 趙品淳老師 組員: 胡珮玟4A1I0006 馬菀謙4A1I0040
骨与关节感染病人的护理 护理系外科教研室 岑晓勇.
男性生殖系統.
引導者的角色 組別:第5組 4A1I0003 劉芷媛 4A1I0004 陳安琪 4A1I0014 陳佳瑩 4A1I0046 葉倢茹
第1章第3节 量化研究与质化研究 案例1:关于中学思想政治教师专业发展现状和需求的调查研究
第四讲:创新思维方式 一、创新思维的方法 二、禁锢创新的心理状态及其排除方法 主讲:黄伟雄教授.
中学生普法教育.
臺中市南屯區文山國民小學102年度校園正確用藥教育議題教育執行成果報告
情緒與壓力管理─背部舒緩 指導老師:彭易璟 第六組組員:會資三乙 499A0047 謝宛霖 會資三乙 499A0019 吳汶諭
绪论课: 物理学和人类文明.
便秘的诊断及治疗原则.
腰痛的针灸治疗 渤海镇卫生院 金永坤.
第十章 诉讼时效、除斥期间与期限.
指導老師:楊淑娥 組別:第一組 成員:劉怡萱4a0i0066 吳珮瑜4a0i0070 林秋如4a0i0075 陳婉婷4a0i0076
組員:4A140013張瓊云 4A1I0039石宜芬 4A1I0909許峻綱 指導老師:王立杰老師
肺部大叶性肺炎 平山县人民医院影像科 康军.
指導老師:陳韻如 姓名:吳宜珊 學號:4A0I0911 班級:幼保二乙
痴呆 龙华医院 顾耘.
地價稅簡介.
项目2-1 店铺的定位.
樹人醫專 暑假原住民夏令營.
针刀医学移位性颈椎病 的X线诊断 浙江省仙居县中医院 柴晓峰.
电话联系.
迎宾员礼仪 包头机电工业职业学校管理系 白琳 1.
经行头痛 中医妇科学教研室.
医疗纠纷原因分析和防范 医务科 张海良.
生育保险 朝阳社保中心支付部:黄玮.
铜仁职业技术学院 第二十三讲 腹部损伤 铜仁职院医学院 杜开南.
兒 童 營 養 高雄長庚醫院營養治療科 營養師 洪凱殷.
急腹症相关CT解剖 天铁医院放射中心 王献忠.
哈尔滨市卫生统计 工作会议 哈尔滨市卫生局统计信息中心 2012年12月.
财 务 会 计 第四篇:供应链会计实务 制作人:谌君、熊瑜.
指導老師:陳韻如 班級:幼保二甲 姓名:林靜宜 學號:4A0I0033
农村地区常见非法行医 的调查处理 医疗卫生机构监管二处·陈罡
“落地”问题的探讨 计算思维能力培养 西安交通大学 2012 年全国高等院校计算机基础教育研究会学术年会 冯博琴 ”
《环游西藏》之二 碧玉湖 音乐《白塔》 摄制:C&Y.
消化系统测试病例 昆明医学院第一附属医院医学影像专业.
機車第六篇 事故預防 單元二 行駛中注意事項.
急腹症相关CT解剖 天铁医院放射中心 王献忠.
飲食控制 與 良好的飲食習慣 作者:潘詩涵.
本著作除另有註明外,採取創用CC「姓名標示-非商業性-相同方式分享」台灣2.5版授權釋出
北投溫泉博物館 建築特色 ★小組成員:高103林孟璇、林念儀、施妤柔★.
第三章 世界文明的蛻變與互動 第一節 歐洲社會的蛻變 第二節 世界文明的交匯 第三節 亞洲大帝國的發展 1.
红利、年金、满期金自动转入聚宝盆,收益有保底,升值空间更大
幂函数.
正弦型函数 说课人: 张 莉 学 校: 鞍山五中.
Presentation transcript:

计算机动画 于金辉 CAD&CG国家重点实验室 2018/11/24 浙江大学

用柏林噪声生成的云彩动画 2018/11/24 浙江大学

三维噪声函数 三维噪声函数noise()是一个被广泛使用的过程纹理函数,Ken Perlin曾用其生成了许多逼真的自然纹理。 三维噪声函数noise(x,y,z)是以三维空间点作为输入,以一标量作为输出的函数。 一个良好的噪声函数要满足以下三个性质: (1)旋转统计不变性 (2)平移统计不变性 (3)其频率带宽很窄 2018/11/24 浙江大学

实现方法 三维噪声函数noise()可以由多种方法生成,一种常用的方法是用傅里叶变换,该方法缺点是计算量较大。 85年Perlin提出一个方法,采用三维整数网格来定义噪声,在每一整数网格点(i,j,k)上定义一随机灰度值(0~255)作为该函数的值。非整数网格点出的函数值则通过三线性插值与该点相邻的8个整数网格点出的函数值得到。 2018/11/24 浙江大学

柏林噪声 噪声函数是一个用种子控制的随机数生成器,它以整数作为输入,基于该输入种子输出一个随机数. 如果输入同样的种子数两次,则生成两次同样的随机数.这一点对柏林噪声很重要,否则生成的柏林噪声无意义. 左图为一个噪声函数的例子.对应X轴不同点生成0到1的 随机数.对这些数光滑插值(右图)可以定义一个以非整数为参数的连续函数. 2018/11/24 浙江大学

通过幅度和频率概念说明 对于正弦波,其幅度是波峰的高度,波长是从一个波峰到另一个波峰的长度,频率是波长的倒数. 在随机函数例子中,红色点为定义在函数一定尺度上的随机值,其幅度是随机数最大值和最小值之间的差,其"波长"是从一个红点到另一个红点沿横轴的距离,其"频率"也定义为波长的倒数。 2018/11/24 浙江大学

生成柏林噪声函数 注意:不同的频率即对应不同的尺度。 如果取很多这样的连续函数,它们具有不同的幅度和频率 (左图),然后将它们叠加在一起就得到柏林噪声函数(右图)。 注意:不同的频率即对应不同的尺度。 2018/11/24 浙江大学

将柏林噪声扩展到二维 先将二维区域分成小方格,在方格节点上随机生成[0,255]的灰度值,然后用二线性插值得到。 用上述方法生成一系列二维噪声(左小图),将其叠加(右大图)。 2018/11/24 浙江大学

确定幅度和频率间隔 在上述例子中,后面噪声的幅度比前一幅下降一半,频率则为前面的两倍。这是最常用的间隔。 根据实际需要,当然可以采用其它间隔方式。 2018/11/24 浙江大学

引进符号定义幅度和频率 , 这里i是所叠加的第i幅噪声函数。引进persistence 可以方便地把频率和幅度和i关联起来. 2018/11/24 浙江大学

确定倍频程(Octaves) 连续叠加的每个噪声函数叫做一个频程。之所以叫做频 程是因为后面的频率比其前面的高一倍。比如音乐中的 八度。 在柏林噪声中叠加多少个频程要视需要而定。如果柏林噪声用于计算机屏幕上显示,则最高频率可达1个像素,频率再高,对应的噪声小于像素而无法显示。 2018/11/24 浙江大学

柏林噪声中的插值 (1)线性插值:速度快,结果差。 (2)三次样条插值,结果光滑,但比线性插值速度慢。 因为插值有多种方式,在视觉效果上有些插值方式好于另一些插值方式。下面考察两种方式。 (1)线性插值:速度快,结果差。 (2)三次样条插值,结果光滑,但比线性插值速度慢。 2018/11/24 浙江大学

噪声平滑-1D 即三项高斯平滑 前面的插值是为了填补不同频程上(波长)两点之间的空缺点的值。 噪声平滑是把噪声函数的输出(即经过前面插值后的输出)进行平滑,使其看起来随机性少一些,并减小图像中的方块效应。 对于一维噪声曲线,可用下式平滑 即三项高斯平滑 2018/11/24 浙江大学

噪声平滑-2D 对于二维噪声,可用下面伪代码平滑 corner side center 2018/11/24 浙江大学

整合所有步骤-一维柏林噪声 function Noise1(integer x) x = (x<<13) ^ x; return ( 1.0 - ( (x * (x * x * 15731 + 789221) + 1376312589) & 7fffffff) / 1073741824.0); end function function SmoothedNoise_1(float x) return Noise(x)/2 + Noise(x-1)/4 + Noise(x+1)/4 2018/11/24 浙江大学

整合所有步骤-1D柏林噪声伪码 function InterpolatedNoise_1(float x) integer_X = int(x) fractional_X = x - integer_X v1 = SmoothedNoise1(integer_X) v2 = SmoothedNoise1(integer_X + 1) return Interpolate(v1 , v2 , fractional_X) end function function PerlinNoise_1D(float x) total = 0;p = persistence;n = Number_Of_Octaves – 1 loop i from 0 to n frequency = 2i ;amplitude = pi ; total = total + InterpolatedNoisei(x * frequency) * amplitude end of i loop return total 2018/11/24 浙江大学

2D柏林噪声伪代码 2018/11/24 浙江大学

2D柏林噪声伪代码(续1) 2018/11/24 浙江大学

2D柏林噪声伪代码(续2) 2018/11/24 浙江大学

柏林噪声与高斯噪声 Perlin噪声(不完全随机) 高斯噪声(完全随机) 2018/11/24 浙江大学

二维柏林噪声的应用 地形地貌 云彩 2018/11/24 浙江大学

柏林噪声的应用-纹理 2018/11/24 浙江大学

三维柏林噪声 可用于生成云彩动画。用柏林噪声生成云彩需要现仔细观察天上的云彩。 1.太阳发光,非常明亮。 2.靠近太阳的云彩比远处的 云彩更亮。 3.云彩有时遮挡太阳,这时容易看到云彩。 4.云彩在空中运动变化。 5.空中有些地方有云彩,其它地方没有。 6.很远处的云彩被雾霭模糊。 2018/11/24 浙江大学

生成柏林噪声 从实时考虑选用4个频程的柏林噪声,它们对应纹理大小是256X256,128X128, 64X64 ,32X32,见左图。 将它们叠加:CloudMap = Map1 + (Map2 / 2) + (Map3 / 4) + (Map4 / 8),得到右图结果。 2018/11/24 浙江大学

有云和无云区域控制 用一个简单的函数把纹理分成有云和无云区域,这里指数控制云彩边缘的渐变亮度。 这里v是云彩纹理图像上某像素的值,CloudCover需赋值,如85;CloudSharpness也需赋值,如0.5(不能超过1)。 2018/11/24 浙江大学

控制后的结果 参考代码地址: 1. http://forg.googlecode.com/svn-history/r87/trunk/forg/wxtestsuite/ noiseframe.cpp 2. http://www.openengine.dk/code/projects/PerlinNoiseDemo/main.cpp 2018/11/24 浙江大学

云彩动画 即对两个噪声图插值. 四个频程的噪声图要用不同速度插值,具有最大幅度的要用最慢的速度。 2018/11/24 浙江大学

用柏林噪声生成的云彩动画 2018/11/24 浙江大学

可以进一步推柏林噪声进行抻拉、着色或者变形,以拓广其应用范围 2018/11/24 浙江大学

位移 添加位移可以改变多层柏林噪声叠加的效果 引进不同的位移速度可以产生不同的动画效果 We use the turbulence texture to phase shift the domain of the flow in y (vertically) colorMap(y + F(x,y,z)) 参见: http://www.noisemachine.com/talk1/24b.html 2018/11/24 浙江大学

Ken’s Academic Award http://mrl.nyu.edu/~perlin/doc/oscar.html 2018/11/24 浙江大学

C code for Perlin noise 2018/11/24 浙江大学

湍流函数 Perlin的湍流函数由一系列三维噪声函数叠加而成,其一般表达式为: 其中P表示一纹理空间点(x,y,z),k为满足下列不等式的最小整数。 2018/11/24 浙江大学

湍流运动模拟 为了使纹理细节随时间变化(如火焰),进而实现过程 纹理的运动,一个自然的想法是在湍流函数中引进时 间变量。即构造一个四维噪声函数。 首先在三维空间构造一个整数网格结构,四维噪声函 数noise(P,t)在每个整数网格点(i,j,k,l)的取值为一随机 灰度,非网格点处的值由四线性插值函数计算得到。 2018/11/24 浙江大学

火焰动画 火焰的基本形状,由动画师根据场景需要设计(左图),将其围绕Y轴旋转,得到一个火焰单位(fire unit,右图) 2018/11/24 浙江大学

将火焰形状、柏林噪声进行抻拉变形,用火焰形状作为模板对柏林噪声进行显示。 2018/11/24 浙江大学

火焰色彩分布 将火焰定义在长方形区域内,引入湍流函数,火焰的动态色彩分布函数为 flame(P)=(1-y/h)flame-color(|x/b|) y - b b x y∈[0,h]. x ∈[-b,b]. x=0时达最大值。 x=-b,b时为0。 2018/11/24 浙江大学

引入湍流函数后火焰色彩 将火焰定义在长方形区域内,引入湍流函数,火焰的动态色彩分布函数为 显然,火焰动画取决于turbulence(P,t)函数。 为便于理解,考虑二维柏林噪声,其中一维是时间。 t=t1时对应一个一维柏林噪声, t=t2时对应另个一维柏林噪声, 如果t1和t2足够密集,则两个噪 声之间近似连续变化。 t1 t2 t 2018/11/24 浙江大学

火焰动态控制 考虑三维柏林噪声,其中一维是时间。 t=t1时对应一个二维柏林噪声, t=t2时对应另个二维柏林噪声, 声之间近似连续变化。 t1 t t2 火焰动态控制(加位移) ,表示火焰运动方向 2018/11/24 浙江大学

火焰动画模拟结果 2018/11/24 浙江大学

基于物理的火焰模型(2002) 用纳维-斯托克斯方程求解 http://graphics.ucsd.edu/~henrik/papers/fire/fire.pdf 2018/11/24 浙江大学

火焰和其他物体之间的交互作用 横穿火焰物体被引燃 2018/11/24 浙江大学

水波纹理 动画视频 2018/11/24 浙江大学

水波纹理 模拟水波最简单的方法是正弦波叠加,该方法的突出优点是非常容易实水的波动,但只能合成小振幅水波。 常用的水波函数有平行水波以及同心扩散水波 2018/11/24 浙江大学

平行水波:从熟悉的正弦函数开始 y=A*sin(ωx+φ�) 上述公式不能表现波的运动.再考察下面具有不同初相位的正弦曲线,对应波峰位置也不同 所以可以通过正弦曲线相位随时间变化来控制正弦曲线的移动: y=A*sin(ωx- φ t) 2018/11/24 浙江大学

平行水波纹理 平行水波纹理函数为 其中Ai为水波振幅,t为时间,(ui,vi)为第i个正弦波的前进方向,(Ci1,Ci2)为第i个正弦波的速度。 上述函数实质上定义了t时刻的水波高度场,当t连续变化时我们就得到了水波的运动。 2018/11/24 浙江大学

平行水波纹里函数 设n=1,则有 z(x , y)=A cos (u (x-C1t) + v (y-C2t)) 若v=0, 则z(x , y)=A cos (u (x-C1t) ) 若u=0, 则z(x , y)=A cos (v (y-C2t) ) 其中 A为水波振幅,t为时间, (u,v)为正弦波的(合成)前进方向, (C1,C2)为正弦波的速度。 2018/11/24 浙江大学

多个正弦波叠加 在上述公式中有多个参数需要确定: 正弦波个数n以及 Ai, ui, vi, Ci1,Ci2. 2018/11/24 浙江大学

卡通风格水波 先用样条曲线生成风格化水波峰, 先用 生成一些峰点,然后在Hk,Hk+1之间添加一个凹点Hin,其幅度取 根据卡通风格水波形状(右上图)还需进一步对正弦波峰进行风格化处理。 先用样条曲线生成风格化水波峰, 先用 生成一些峰点,然后在Hk,Hk+1之间添加一个凹点Hin,其幅度取 对Hk,Hin,Hk+1用样条曲线插值得到BARCk,代表ballistic arc (像弹道的弧线). 2018/11/24 浙江大学

卡通风格水波 在主要正弦波中 利用 检测正弦水波峰线(图中), 然后刚才得到的BARCk对正弦水波峰线高度加权得到风格化水波峰形状(图右). 利用 检测正弦水波峰线(图中), 然后刚才得到的BARCk对正弦水波峰线高度加权得到风格化水波峰形状(图右). 2018/11/24 浙江大学

波峰白浪(white water)形状建模 波峰白浪形状可用两组ballistic arcs构建(左图).注意中间凹点是偏离两峰点中间位置的(如红色箭头示) 将检测的水波峰线位置映射到一张纹理图上(中图粉色线). 再将波峰白浪形状影射到纹理图波峰线上(中图). 最后将纹理映射到3D水波表面(图右). 2018/11/24 浙江大学

激起大浪的建模 先观察手工绘制的激起大浪序列,交互画出其结构,中间呈树状(红色),轮廓像树叶(蓝色).该结构随时间变化. 2018/11/24 浙江大学

浪花最大轮廓与树状结构建模 先用一三角形定义大浪的宽度W和高度H,然后添加两个点构成五边形,对其顶点用样条插值得到浪花可达最大轮廓. 将中间垂线分成m段,每段顶点作为树状分枝点,然后将其和轮廓线上对应比例位置点相连得到左面分枝,右面分枝用类似方法得到. 2018/11/24 浙江大学

浪花实际形状轮廓 在刚才五边形内用类似方法再构建一个高度降低的五边形,对其顶点插值得到一个曲线(如虚线示), 在曲线上寻找和树枝交叉点,在每两相邻点间再生成一些ballistic arcs得到实际浪花轮廓线. 2018/11/24 浙江大学

添加水滴 在每个树枝上从浪花实际轮廓交叉点到最外轮廓顶点添加垂直于树枝的短横线,短横线的长度用正弦函数加权,然后用样条插值得到水滴形状 水滴沿树枝向外运动. 2018/11/24 浙江大学

浪花内部空洞建模与控制 将浪花内部空洞分成几类,用特征点定义其大致形状,然后用样条曲线插值得到最终形状, 最后将它们放置在浪花轮廓内部. 2018/11/24 浙江大学

最后结果图 2018/11/24 浙江大学

复杂海浪动画视频 2018/11/24 浙江大学

同心圆水波纹理 同心圆水波纹理函数为 在形式上它与 z(x )=A cos (u (x- Ct) )类似. 其中r=(x,y)-(c1,c2)=(x-c1,y-c2), (c1, c2)为该同心水波的中心,C为扩散速度。 网上找到一个实例,采用了指数衰减, c2控制衰减快慢: z(x,y)=A*cos(k*sqrt((x^2+y^2))-Ct)/ exp((x^2+y^2)* c2) 2018/11/24 浙江大学

水波模拟效果 2018/11/24 浙江大学

纹波荡漾视频 2018/11/24 浙江大学

A survey of water animation (20 pages) 2018/11/24 浙江大学

References in the survey 2018/11/24 浙江大学

References in the survey 2018/11/24 浙江大学

Animating breaking waves 2018/11/24 浙江大学

2018/11/24 浙江大学

注意 2018/11/24 浙江大学

Animating water interaction 2018/11/24 浙江大学

2018/11/24 浙江大学