第一章 导论
第一章 导论1.1 什么是基于物理的动画基于物理的的动画(physically based animation)与基于物理的建模 (physically based modeling)这两个术语可以交替使用,两者都意味着用物理原理(通常是经典力学)去为随时间演变的现象建模,并将这些模型实现成模拟算法。
动画师通常制作原动画,如动作等,基于物理的动画主要生成附属动画(secondary animation)包括场景中角色以外的运动。
1.2动态模拟和离散事件模拟动态模拟(dynamic simulation)是指连续演变的现象,与事件模拟(discrete event simulation)相对。
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
More info: Deployment
重构-改善既有代码的设计:函数重构-重新组织函数的九种方法
重构-改善既有代码的设计:函数重构-重新组织函数的九种方法一、函数逻辑相关
Extract Method 提炼函数:由复杂的函数提炼出独立的函数或者说大函数分解成由小函数组成
Inline Method 内联函数:直接使用函数体代替函数调用
Replace Method with Method object 函数对象取代函数:大函数变成类
二、函数局部变量重构
Inline Temp 内联临时变量:表达式代替临时变量
Replace Temp with Query 以查询函数代替临时变量:独立函数代替表达式
Introduce Explaining Variable 引入解释性变量:复杂表达式分解为临时解释性变量
Split Temporary Variable 分解临时变量:临时变量不应该被赋值超过一次
三、函数参数重构和算法重构
Remove Assigments to Parameters 移除对参数的赋值:不要对参数赋值
Substitute Algorithm 替换算法:函数本体 ...
写代码犹如写文章
写代码犹如写文章本书中Bob大叔提倡”写代码犹如写文章“,又说道“大师级程序员把系统当故事来讲,而不是当做程序来写”,对此观点我印象深刻!在此之前我从未听说过可以把代码当成故事、文章来写,Bob大叔太有才了!
如何才能写出整洁代码呢?总的原则无非是KISS(Keep It Simple Stupid):让代码简单直接,让阅读者可以很容易地看出设计者的意图。本书中给出了很多方法与规范,遵循这些规则可以帮你写出更加的整洁代码。
这是一本不错的书。给本书打4星,是因为本书在讲述代码重构方面不如《重构–改善既有代码的设计》、讲述代码编写方面不如《代码大全》、讲述代码设计方面不如《敏捷软件开发》(Bob大叔自己的上一本经典著作)。另外中文版价格偏高,翻译质量也很一般。
读书笔记:第一章 整洁代码1,整洁代码力求集中,每个函数、每个类和每个模块都全神贯注于一件事。2,整洁代码简单直接,从不隐藏设计者的意图。3,整洁代码应当有单元测试和验收测试。它使用有意义的命名,代码通过其字面表达含义。4,消除重复代码,提高代码表达力。5,时时保持代码整洁。
第二章 有意义的命名1,使用体现本意的命名能让人更容易 ...
《代码整洁之道》读书笔记
《代码整洁之道》读书笔记Part1 让代码比你来时更干净
编写代码的难度,取决于周边代码的阅读难度。想要快速实现需求,想要快速完成任务,想要轻松的写代码,请先让你书写的代码整洁易读。
保持整洁的习惯,发现脏代码就要及时纠正。花时间保持代码代码整洁,这不但有关效率,还有关项目的生存。
程序员遵从不了解混乱风险的产品经理(策划)的意愿,都是不专业的做法。
让代码比你来时更干净:如果每次签入时,代码都比签出时干净,那么代码就不会腐坏。
赶上期限的唯一方法,做得更快的唯一方法,就是在始终尽可能保持代码的整洁。
Part2 整洁代码的命名法则
要点一:要名副其实。一个好的变量、函数或类的名称应该已经答复了所有的大问题。一个好名称可以大概告诉你这个名称所代表的内容,为什么会存在,做了什么事情,应该如何用等。
要点二:要避免误导。我们应该避免留下隐藏代码本意的错误线索,也应该避免使用与本意相悖的词。
要点三:尽量做有意义的区分。尽量避免使用数字系列命名(a1、a2…….aN)和没有意义的区分。
要点四:尽量使用读得出来的名称。如名称读不出来,讨论的时候会不方便且很尴尬。
要点五:尽量使 ...
后处理效果的一些总结
后处理效果的一些总结
所谓后处理(Post-processing),是指在正常渲染管线结束后,对最终渲染图像进行的后期加工,如滤镜等。以此来模拟物理摄像机和电影特效。
下图是UE4和Unity中共有且比较常用的后处理效果思维导图:
抗锯齿 Anti-aliasing产生锯齿的根本原因是由于纹理采样频率与着色频率不同所致,也就是说,当我们的纹理尺寸与屏幕分辨率差距过大时,很容易出现锯齿现象。为了解决这一问题,就需要提高着色采样频率,最直观的方式就是SSAA,但是这么做会成倍地增加性能开销,所以一般前向渲染更多地是会用MSAA。但考虑到延迟渲染,MSAA并不友好,因此目前主流的抗锯齿技术应该是 快速近似抗锯齿(FXAA) 和 时间性抗锯齿(TAA) 。
FXAA基于边缘检测的抗锯齿算法,但是容易产生边缘闪烁的现象。
上图是英伟达给出的Anti-aliasing效果图,左侧是关闭抗锯齿,中间是4xMSAA,最右侧是3级FXAA。
TAA把多次采样的过程分布到每一帧中去,也就是每一帧都利用前面几帧保存下来的数据。
泛光 Bloom模拟了亮度较强区域周 ...
1.2 辐射度量学
1.2 辐射度量学
中文名称
英文名称
单位
符号
辐射能量
radiant energy
J
Q
辐射通量
radiant flux
W
Φ
辐射照度
irrdiance
W/m^2^
E
辐射强度
radiant intensity
W/sr
I
辐射亮度
radiance
W/(m^2^·sr)
L
辐射能量Q,单位为焦耳。表示以辐射形式发射传播或接受的能量
辐射通量Φ,表示光源每秒钟发射的功率,单位为瓦特
辐射强度
辐射照度
辐射亮度