John Novak

RSS: https://blog.johnnovak.net/index.xml
John Novak 关于技术、设计与编程的最新文章。

关于作者

作者John Novak的个人博客简介页面,介绍其 recreational programming 经历及音乐、3D艺术、摄影等兴趣爱好。
评论点赞收藏61 天前

每个程序员都应了解的Gamma校正知识

作者指出大多数程序员和图形库对Gamma校正存在误解,导致图像处理结果错误。文章从人眼非线性感知出发,解释了物理线性与感知线性的区别,阐述了Gamma编码如何优化8位图像存储精度,并详细说明了Gamma传递函数及sRGB标准的重要性。作者结合射线追踪经验,强调在图形处理中正确进行Gamma解码和编码是保证色彩和光照准确的关键,许多常见软件甚至操作系统库都未正确处理此问题。
评论点赞收藏63 天前

宏大对决:MS-DOS游戏通用MIDI音源横评

作者对MS-DOS复古游戏圈中经典的Roland SC-55硬件合成器与Sound Canvas VA、Yamaha MU80及S-YXG50等软音源进行对比测试。文章详细记录了MIDI数据捕获、音频录制及后期处理过程,并提供了听感印象和最终评测结论,旨在探讨不同GM音源在DOS游戏音乐表现上的差异。
评论点赞收藏1260 天前

在CF卡上创建可启动的MS-DOS分区

文章针对没有软驱和光驱的老式PC,介绍如何利用WinUAE模拟器挂载物理CF卡,在AmigaOS环境下进行分区和格式化,从而安装MS-DOS 6.22。这是一篇面向复古计算爱好者的具体操作指南,提供了实用的硬件替代方案。
评论点赞收藏1303 天前

Amiga游戏指南:Part 1,Amiga 500其实就够了(大部分情况)

文章反驳了Amiga游戏最佳玩法是WHDLoad加Amiga 1200高配硬件的普遍观点,主张Amiga 500在大多数情况下已足够。内容涵盖OCS与AGA架构区别,并详细推荐了值得游玩的非OCS冒险、RPG、策略游戏,以及AGA/CD32独占作品和DOS VGA游戏的移植版,最后讨论了WHDLoad的局限性。
评论点赞收藏1322 天前

在个人电脑模拟器中实现时代正确的图形效果:第一部分 Amiga

作者详细探讨了如何在PC模拟器中实现Amiga等复古计算机的原生视觉效果,包括模拟CRT显示器的扫描线、色彩偏差和辉光效应。文章提供了具体的着色器配置方案和视觉对比,旨在还原80-90年代的个人电脑显示体验,适合对复古计算、图形模拟和硬件历史感兴趣的读者。
评论点赞收藏1584 天前

Nim秘典第一卷:实用技巧与隐藏功能

本文介绍了Nim语言中一些不为人知但实用的技巧,包括减小可执行文件体积、异常日志记录、ARC/ORC内存管理、Windows图标设置、调试回显、使用关键字、打开默认浏览器、跨平台目录处理、调试表达式、测量时间、处理openarrays、指针操作、循环类型依赖、with宏和别名等。
评论点赞收藏2064 天前

Raspbian Stretch 家庭服务器搭建指南

作者基于更换树莓派Micro SD卡的经验,详细记录了从安装Raspbian Stretch到配置SSH、VNC、挂载NTFS/exFAT硬盘、搭建FTP服务器及Deluge下载守护进程的完整过程。文章包含具体的配置命令和故障排除指南(如fstab问题),属于典型的个人技术实操笔记。
评论点赞收藏2717 天前

为FMOD创建Nim语言包装器

文章详细记录了使用Nim语言为FMOD音频库创建绑定的全过程。内容涵盖了从自动生成基础包装器,到解决不透明C结构体、循环类型、无符号整数、动态链接等具体转换错误,再到处理回调函数、函数指针、缺失常量和错误辅助函数的工程实践。这是一篇典型的底层语言互操作性技术教程,提供了具体的踩坑经验和解决方案。
评论点赞收藏2962 天前

Ao 抵抗黑暗势力(pbrt 遇上 Nim 语言)

作者重读经典渲染书籍《Physically Based Rendering》,决定基于书中理念用Nim语言重写光线追踪器,并记录了坐标系统、向量运算、矩阵求逆及射线盒交叉测试等技术实现细节与项目结构思考。
评论点赞收藏3346 天前

给新手的Nim性能调优指南

作者通过一系列基准测试,对比了Nim语言在不同实现方式(如使用GLM库、自定义对象引用、纯对象、模块内联等)下与C++、Java、JavaScript及Python的性能差异。文章提供了具体的测试设置和代码优化技巧,旨在帮助初学者理解如何挖掘Nim的性能潜力,并探讨了这些性能差异在实际开发中的意义。
评论点赞收藏3403 天前

给Vim狂热者的极简Openbox桌面配置指南

作者针对重度Vim用户,分享了一套基于Openbox的极简Linux桌面配置方案。文章详细描述了如何通过键盘快捷键和Vim风格的操作逻辑来替代鼠标,实现高效的窗口管理和系统交互,旨在减少手指离开Home Row的次数,提升编程与日常操作的流畅度。
评论点赞收藏3563 天前

What every coder should know about gamma

Table of contents A short quiz The arcane art of gamma-correctness What is gamma and why do we need it? Light emission vs perceptual brightness Physical vs perceptual linearity Efficient image encodin...
评论点赞收藏3615 天前

跨平台GUI工具库的灾难现场:2016年版

作者对2016年主流跨平台GUI工具库(如Qt, GTK, Flutter前身等)进行了深度吐槽与技术评估,指出各方案在性能、开发体验、原生感等方面的缺陷,认为当时没有完美的跨平台GUI解决方案,呼吁开发者谨慎选择。
评论点赞收藏3731 天前

Nim 光线追踪器项目:基础篇

本文是 Nim 语言光线追踪器系列的第二部分,详细讲解了坐标系、变换矩阵、主光线计算以及光线与球体、平面的相交检测等基础数学与算法实现。
评论点赞收藏3760 天前

登录芦苇

登录后关注作者、收藏内容和参与讨论。