计算机图形学基础(5)——着色
上一篇 文章 我们介绍了光栅化所涉及的基本内容。通过光栅化,我们可以实现将 3D 空间模型的投影绘制到 2D 屏幕。然而,仅仅实现光栅化,还不足以让渲染结果具有真实感,如下图左部所示。我们希望能够模拟光线所带来的的明暗效果,如下图右部所示。
上一篇文章我们介绍了计算机图形学中的数学基础,包括:2D 变换、3D 变换、齐次坐标等。本文,我们则来介绍将三维模型投影到二维屏幕的数学原理。
最近对计算机图形学比较感兴趣,刷了一遍《计算机图形学入门:3D渲染指南》,看了一遍《GAMES 101》。本文对计算机图形学的线性代数相关基础进行了梳理和总结,以便后续进行复习和回顾。
最近在写一篇文章 《Myers 差分算法》,发布之后发现 NexT 默认使用的公式渲染器的效果不太好,于是...搞了几晚,整体升级了 Hexo 系统和 NexT 主题。
最近在三刷《程序员的自我修养:链接、装载与库》,为了加深对于相关知识的理解,我又阅读了 fishhook 的源码。本文希望从程序的链接原理出发,详细介绍 fishhook 的设计原理,学习其中的设计思想。
继承(Inheritance)是 面向对象编程(Object Oriented Programming, OOP)的三大特性之一,其他两大特性是 封装(Encapsulation)和 多态(Polymorphism)。在编程语言中,继承的主流实现方式有两种,分别是:
自分布式计算出现以来,业界已经开始广泛研究基于消息传递编程模型的解决方案。关于消息传递,Wikipedia 描述其广泛定义主要包括:远程过程调用(Remote Procedure Calls, RPC) 和 消息传递接口(Message Passing Interface, MPI)。但是,如今我们所谈到的消息传递,通常是指 actor 模型(Actor Model)。作为一种通用的消息传递编程模型,其起源于 20 世纪 70 年代,如今被广泛用于构建大规模可伸缩分布式系统。
从异步与并发编程兴起以来,学术界与工业界提出了非常多的解决方案,本文将要介绍的 Future 和 Promise 正是其中的两种解决方案。Future 和 Promise 的实现理念非常相似,两者在发展过程中相互借鉴,相互融合。目前,很多流行的语言和框架都引入了 Future 和 Promise 的概念,如:JavaScript、Node.js、Scala、Java、C++ 等。
最近希望在业务中实现一套基于 AOP 的埋点方案,调研过程中,我花了些时间阅读了一下 Aspects 的源码,对于 Aspects 设计有了一些更深入的理解。因此,通过本文记录我在阅读源码后的一些收获和思考,以供后续进行回顾。