zhiruili

LV0
发表了文章

图形学入门(三):基础着色

在掌握了上一篇文章的知识之后,我们现在可以通过逐个绘制三角形面组合出一个模型了。但是我们现在绘制出来的结果看起来是一个色块,效果不太自然。在现实中,我们看到物体...

zhiruili
发表了文章

图形学入门(二):光栅化

光栅化(Rasterize)就是将一些矢量形状转换为位图(Raster Image)形式。经过这样的变换后,这些形状才可以在屏幕上进行显示,也可以被打印机打印出...

zhiruili
发表了文章

深入理解渲染方程

在图形学入门(三):基础着色中,我们讨论了 Phong 反射模型,当时我们提到过 Phong 反射模型不是一个物理模型,而是一个经验模型,这意味着这个模型对光照...

zhiruili
发表了文章

图形学入门(一):坐标变换

将一个物体显示到屏幕上,这个事情似乎非常简单,以至于我们基本上认为它已经天经地义到直接告诉计算机我们要显示什么物体它就会自动显示出来,毕竟我们拍照的时候就是举起...

zhiruili
发表了文章

协变、逆变与不变

型变(variance)是类型系统里的概念,包括协变(covariance)、逆变(contravariance)和不变(invariance)。这组术语的目的...

zhiruili
发表了文章

另一种 C++ 程序错误处理方式

C++ 是一个很灵活的语言,这把双刃剑一方面使得 C++ 有很强大的表达能力,但也使得其编程风格相当混乱,就连错误处理到底是使用错误码还是异常都常常争论不休。例...

zhiruili
发表了文章

静态作用域和动态作用域

所谓作用域规则就是程序解析名字的方法。如果一个变量的名称不在当前作用域内,则这样的变量称为 unbound variable,例如有一个函数 (lambda (...

zhiruili
发表了文章

从并发模型看 Go 的语言设计

传统的程序语言设计都不会将输入输出作为语言的核心,但 Tony Hoare 认为输入输出是基本的编程原语,且通信顺序进程(Communicating seque...

zhiruili
发表了文章

使用 Future 进行并发编程

在编程的时候,常常会遇到需要并行处理一些代码,最原始的做法就是创建不同的线程进行处理,但是线程之间的同步处理非常麻烦而且容易出错,如果要同时得到几个线程的结果并...

zhiruili
发表了文章

不可变的状态

在过程式的编程中,例如使用 C 语言,我们的工作是不断地以副作用的形式对状态进行修改,然后产生结果。例如我们可能会先令 int x = 0,然后进行一系列操作,...

zhiruili
发表了文章

实际工程中的 C++ 模板

C++ 的模板是 C++ 的一个重要的语言特性,我们使用的 STL 就是 Standard Template Library 的缩写,但是在很多情况下,开发者都...

zhiruili
发表了文章

计算的表示

当提到「计算」这个词的时候,我们会想到什么,是想到「计算机」,或是「图灵机」,又或是操控计算机的「汇编语言」,还是说「1 + 1」这样的算式?这些都是计算,但它...

zhiruili
发表了文章

Rust 提升安全性的方式

Rust 1 是 Mozilla 公司开发的编程语言,它在 2010 才开始发布第一个版本,可以说是一个非常年轻的语言了。在提出一个新的编程语言的时候,设计者必...

zhiruili
发表了文章

Parser Combinator

词法分析(lexical analysis)1 和语法分析(syntactic analysis,又称为 parsing)2,同属于编译器的前端部分。词法分析器...

zhiruili
发表了文章

Null 值及其处理方式

Null 值由来已久,它最早是由 Tony Hoare 图方便而创造的,后来被证明这是个错误,而他本人也对此进行了道歉,并称之为「十亿美金错误」1。

zhiruili
订阅了专栏

腾讯云自媒体分享计划

3 文章4K 关注者
关注了用户

腾讯云自媒体分享计划

腾讯 · 产品运营 (已认证)

申请条件:至少有 20 篇或以上符合投稿要求可迁入腾讯云专栏的原创技术文章。

3 文章0 回答4K 关注者
创建了专栏

简易现代魔法

自动搬运自 https://zhiruili.github.io/

15 文章15 关注者

个人简介

个人成就

扫码关注云+社区

领取腾讯云代金券