图形学实验框架 Dandelion 始末(七):未始与未了 这一篇我想讲讲 Dandelion 开始之前与 1.0 版本结束之后的故事,“未始”代表参与图形学课程改革之前所想,“未了”代表这段经历落幕后的尾声——也是我的一点心声。由于大多是主观的经历和感受,我并不强求各位读者的赞同。如有幼稚、片面之处,请作诸君之笑料。 2025-02-07 随笔 #图形学 #课程 #本科教育
图形学实验框架 Dandelion 始末(六):运动和碰撞 《始末》系列是关于 Dandelion 1.0 版本的个人回忆,而这是系列里关于实现过程和细节的最后一篇。完成前面的诸多工作之后,利用场景、物体数据和渲染机制,再配合独立性很强的求解器,物体就可以运动起来了。 2025-01-05 编程 #图形学 #课程 #编程 #本科教育
图形学实验框架 Dandelion 始末(五):交互式几何编辑 原计划一口气写完《始末》这个系列,却在去年年初中断。写下这篇文章的时候已经是 2025 年,实在始料不及。这篇文章着重于 Dandelion “建模模式”背后的交互实现与数据同步机制,而不是几何算法,因为我认为前者是回忆录中更值得回顾的部分。 2025-01-01 编程 #图形学 #课程 #编程 #本科教育
初夏青龙寺小记 忙得有些生厌,遂出门闲逛。乍一想起来西安四年半了还未去过青龙寺,转念又想,没去过的地方且多了去,想到哪里去哪里逛逛就是了。 看过才知道,青龙寺实名青龙寺遗址,而所谓遗址当指的是被发掘的若干地基及文物,并无地上建筑存留。今之青龙寺遗址博物馆及寺院,多半是钢筋混凝土结构——样式不错,不过在西安也不算出奇。 此时立夏已一周,牡丹之类俱已开败,园子里已找不到多少花。然而初夏之际,草木茂盛最为可观,加上游人 2024-05-16 随笔 #生活 #拍摄
图形学实验框架 Dandelion 始末(四):渲染模式与软渲染流程 GAMES 101 的实验中包含了经典的光栅化渲染、Whitted-Style Ray-Tracing 和路径追踪,加上闫老师高质量的课程内容,已经把局部光照渲染和全局光照渲染这两种视角展示得很不错了。但我从开始做 101 的实验时就产生了一个遗憾——为什么不能用我自己编写的工具来渲染任何我想要渲染的模型呢?而这正是 Dandelion 想要弥补的地方。 2024-02-05 编程 #图形学 #课程 #编程 #本科教育
图形学实验框架 Dandelion 始末(三):OpenGL API 抽象与实时渲染 OpenGL 标准描述了一种 C/S 架构的 GPU 编程模式:CPU 上执行的程序是 Client ,通过调用 API 可以查询或更改全局状态,也可以请求渲染;GPU 是 Server ,响应查、改状态或渲染的请求。这种设计思路导致编程时需要时刻考虑许多状态,而每次进行渲染都要更改若干个状态。为了更方便地管理这些状态,我在 Dandelion 框架实现中对 OpenGL 略作封装,屏蔽了大部分细 2024-01-28 编程 #图形学 #课程 #编程 #本科教育
图形学实验框架 Dandelion 始末(二):最初原型实现 当我有了初步的需求分析结果,下一步就可以开始写代码了。虽然当初动手实现之前已经有了一些思考和设计,但后来写出的代码还是有不少问题。这一篇文章回顾最初对代码结构的设计,其中有很多粗糙的地方后来被大幅度重构,但事件循环和交互处理的部分还是大致留存下来了。 2023-10-30 编程 #图形学 #课程 #编程 #本科教育
图形学实验框架 Dandelion 始末(一):需求与设计 和同学聊天时开玩笑说,建设一门课就好像养了一个孩子,时时处处需要关心。今年我为本科的图形学课程编写了全新的实验框架,也算是慢慢走出了完全模仿 CMU 15/462 的阶段,试图更好地在有限的教学条件下展现图形学的趣味。其实在此之前我并未写过如此规模的程序,完成框架的过程也因此成了锻炼自己的过程。如今框架初成,用这几篇文章回顾和总结一些设计与开发的经验,既是一段给后来开发者的说明,也是记一些自己的小 2023-09-30 编程 #图形学 #课程 #编程 #本科教育
初涉 λ 演算 (lambda calculus) 不幸上了一门干瘪枯燥的形式化方法课程,但课讲得不太好并不影响这些知识的趣味,毕竟还可以自己学嘛。课程内容更偏向软件形式化验证,不过会补充 λ 演算的内容,并且用到的证明器 Coq 也比较像是一种函数式语言。而相比于形式化验证,我对 λ 演算和函数式编程的兴趣更多一点。借着几篇博客和一些视频资料了解 λ 演算是什么之后,我也写下了几页的草稿和笔记。这里再整理一下自己的思路,从原始的 λ 演算系统开始 2023-05-28 数学 #λ 演算 #函数式编程