最新 | 最热门 | 最高评价

+0  只是一个记法

Tag: 软件开发
sipoint 发于 2017年06月22日 09:23 | 点击: 1028 | 展开摘要
本科开始学 linear algebra 时,最大的困惑是 matrix, dot product, cross product 这些概念指的到底是什么。书读的遍数多了,忽然间脑子里就隐隐约约明白了。其实还是说不清,只是不再纠缠而是忙着看之后的内容了。

好多年之后开始学习 rendering,工作上也常有绘制 custom UI 的问题,渐渐觉得这些东西理所当然,不再深究。但时常遇到初次接触这些领域的人问同样的问题。我敢打赌,每个接触过这些概念的人,不管是后来以图形学为生,

查看全文: http://www.udpwork.com/item/16702.html

+0  Hackathon 和代码规范

Tag: 软件开发
sipoint 发于 2017年08月24日 12:49 | 点击: 1015 | 展开摘要
但凡经手的代码,我尽量令其严格遵守代码规范。看到写的里出外进的代码,比如操作符和括号两侧随机缺掉或者多出空格,连续七八行的代码各行之间都空行…… 都不禁感慨背后的作者到底是有怎样的心情和素养。随着经历的增长,这种感受也会发生变化。

几个月前进行了一次不算剧烈的 hackathon。说「不太剧烈」是因为这次实际上和正式做产品 feature 没有太大区别。做产品 feature 的第一步也是用最快速度写出来一个能运行的基本逻辑,然后再一点点通过 refactor 把代码变换成

查看全文: http://www.udpwork.com/item/16699.html

+0  Rendering 和「赌玉」

Tag: 软件开发
sipoint 发于 2017年01月29日 05:41 | 点击: 1002 | 展开摘要
大年三十夜里,在 TurboSquid 上买了个价位还算合理的 F-4J model 作为自己的春节礼物。以我的购买经验,刚刚打开的时候不出所料小小的失望了一番。Polygon 的粒度和座舱透明在 OBJ 格式上处理的都不对。紧急对 Nuo Model Viewer 的代码做了些调整,结果发现还是个不错的模型。更好的是起落架收起/放下只要用简单的隐藏/显示 model parts 就能实现。TurboSquid 对我这样用「非主流」renderer 的人不保证最终渲染效果,每

查看全文: http://www.udpwork.com/item/16703.html

+0  关于语言消亡

Tag: 软件开发
sipoint 发于 2016年11月17日 09:34 | 点击: 877 | 展开摘要
不是长篇立论,只是突然想到一个有趣的话题。

我们通常会惊讶于旧技术的生命力。《What Technology Wants》里 Kevin Kelly 详实的阐述了旧技术永不消亡的事实。在 IT 领域,所有出现过的编程语言似乎也都还在发挥作用,提供着相当数量的工作机会。但是有一种语言,似乎还很年轻,辉煌的日子也并不久远,却突然的以一种和其历史记录完全不相称的速度从各个领域都消失了。这就是 Pascal。

Pascal 出现的时间并不太早。个人计算机早期被 Macintosh

查看全文: http://www.udpwork.com/item/16704.html

+0  十年纪念

sipoint 发于 2017年07月30日 06:17 | 点击: 828 | 展开摘要
十周年了。这个礼物我很喜欢。毕竟 macOS full screen 模式不显示时间。:-)

查看全文: http://www.udpwork.com/item/16700.html

+0  Await:从 Swift 到 C++

Tag: C++ | 软件开发
sipoint 发于 2021年06月16日 01:09 | 点击: 678 | 展开摘要
上周三(6/9)早上醒来,发现全世界都在赞叹 WWDC 里宣布的新版 Swift async/await 特性。看了几条信息隐约说是基于 coroutine。尽管从去年起因为对 Apple Silicon Mac 迁移的失望已经把个人项目向 Windows 平台转移,但看在当年研究 Lua coroutine 和 Lisp continuation 下了很大功夫的份上,决定探索一下这个 Swift 语言新特性的细节。特别是在没有 VM 的语言上采用 coroutine 会有什

查看全文: http://www.udpwork.com/item/17914.html

+0  Exception Reconsidered

Tag: C++ | 软件开发
sipoint 发于 2020年12月24日 03:50 | 点击: 510 | 展开摘要
我一直是 C++ exception 的反对者。《Programming in Lua(二)- 异常与错误码》提到 Russ Cox 谈论 C++ exception 的所谓「根本缺陷」。我以前的认识是返回 error code 是最好的错误处理方式。

和返回 error code 不同,exception 会触发 call stack 的回退,从而失去了错误发生时的程序运行状态(指代运行状态的术语是 continuation)。这是我之前极力避免 exception 的最

查看全文: http://www.udpwork.com/item/17731.html

+0  Phong Model and Physically-Based

Tag: 软件开发
sipoint 发于 2020年04月25日 03:22 | 点击: 435 | 展开摘要
Phong model 大概是计算机图形领域最简单的材质模型。仅由三个 (组) 参数组成。Nuo Model Viewer 作为个人学习项目从实现 rasterization 渲染入手,自然最初只支持 Phong model。有个问题伴随着 Nuo Model Viewer 的扩展:是否要支持其它更复杂的材质模型?另一个相关问题是,如果 Nuo Model Viewer 支持 path-tracing,对于现有基于 Phong model 的模型是进行预处理转换成其它材质模型

查看全文: http://www.udpwork.com/item/17732.html

+0  一张 WWDC 幻灯片

Tag: 软件开发
sipoint 发于 2019年04月04日 13:36 | 点击: 429 | 展开摘要
之前的 blog 里提到过,尽管早有愿望学 ray tracing,但 2018 前半年总提不起兴趣动手。六月 Apple WWDC 2018 里关于 ray tracing 的 session 成为我第一次真正接触 ray tracing。望着讲台上削减至极的幻灯片和 speaker 超快的解说,我想这似乎并不难,大概下周给同事总结 WWDC 时就可以自己解释这个问题。

实际上到现在过了十个月,才能说大致理解了这张幻灯片的数学原理。一个简单的 demo 固然能推进学习的进

查看全文: http://www.udpwork.com/item/17735.html

+0  单元测试和个人技能成长

Tag: 软件开发
sipoint 发于 2020年04月17日 05:46 | 点击: 416 | 展开摘要
最近看到个对单元测试的看法:

单元测试是预防错误的主要手段。如果一个团队所在的领域对错误的容忍度高,而其市场需要 move fast,就 (暂时) 不用有单元测试;反之,若所在领域对错误容忍度低,那么重视实践单元测试的团队会取得优势。

然而,单元测试并不是「预防错误的主要手段」。首先单元测试并非全部测试。除了单元测试,还有组件测试,系统整体的人工测试,自动化的整体测试等等。团队资源应该在所有测试类型间合理分配,而不是预设单元测试最重要。其次,错误预防的关键点在于 esca

查看全文: http://www.udpwork.com/item/17733.html

+0  一次性代码和坚固的基础

Tag: 软件开发
sipoint 发于 2019年10月13日 13:26 | 点击: 415 | 展开摘要
我对「技术债务」的态度和像对财务债务一样「中立」。借入债务以求发展是必要的,只要在 accounting 里确实把它标成「债务」。债务不断积累时要寻求机会逐步清除它们。比如说对还算能运行的代码进行 refactor。

这会遇到一种反对意见:这段代码估计一两年以后就要废弃了,何必费力气?只要修修补补撑段时间就好了。

其实我的经历是被这么评价的代码反而往往会跟随一个团队十几年。另一方面,有些被寄予很高期望,计划会被使用很多年的代码却连一次正式使用的机会都得不到就被抛弃了。

查看全文: http://www.udpwork.com/item/17734.html

+0  Wavefront OBJ 与 Monte Carlo

Tag: 软件开发
sipoint 发于 2019年02月25日 05:30 | 点击: 381 | 展开摘要
去年十月搬家到现在一直没有对 Nuo Model Viewer 做大改动。年前忙于布置新家。到新年前后稍感安定想增加些新功能,但越想越感觉已有的 ray tracing 代码缺乏数学依据,于是开始温习数学概念。

粗糙的实现

首先,考虑仅支持理想方向光源直射,以及理想纯漫反射材质 (Lambertian) 的 shading 公式 [1]:

这是两年前开始做 Nuo Model Viewer 时最先实现的公式。其实要分析很多细节才能保证完全正确的实现 —— 如何从模型材质

查看全文: http://www.udpwork.com/item/17736.html
|<<<1234567>>>| 一共7页, 84条记录