不多逼逼,C 语言,一周,写一个 3D 建模器
开发者 Daniel Hooper 在一周内使用 C 语言和 raylib 库完成了一个 3D 建模器项目 ShapeUp,代码行数:
- 2024 行 C 代码
- 250 行 GLSL 代码
-
总数 2274 行
Daniel Hooper 发布了一篇关于他在一周内使用 C 语言创建 3D 模型器 ShapeUp 的文章。ShapeUp 使用了 signed distance fields (SDFs) 和 ray marching 技术来快速实现 3D 渲染,这使得在短时间内从头开始创建 3D 项目成为可能。
Daniel 选择 C 语言是因为它的编译速度快,语法简洁明了,且易于理解和记忆,同时可以轻松编译成原生代码和 WebAssembly。他的 “日常工作项目” 使用了大量的 C 和 Objective-C 代码,而 ShapeUp 项目相比之下非常简单,只有一个小的 C 文件。
在 ShapeUp 中,模型由 Shapes 结构体组成,这些结构体存储在一个静态分配的数组中,这样可以避免内存分配失败和内存泄漏的问题。尽管 raylib 库在快速启动项目方面表现良好,但它的设计选择和缺乏文档等问题给开发带来了不便。Daniel 还提到了 raylib 的一些问题,如使用 int
而非枚举类型、缺乏参数验证、依赖管理问题以及 raygui UI 库的局限性。
ShapeUp 的开发分为四个主要部分:
- 用户界面
- GLSL 着色器生成器光线追踪渲染器
- 基于 GPU 的鼠标选择
- 用于导出的 marching cubes 算法
Daniel 强调了正确的优先级设定和避免分心的重要性,以及通过简单有效的解决方案来应对复杂问题的方法。他的开发策略是确保在任何时刻都有一个可工作的 3D 模型器,并随着时间的推移不断改进它。最终,他在一周内完成了一个能够创建有意义 3D 模型并导出为 .obj 文件的程序,该程序也能在多个平台上运行。
The project is 2024 lines of C and 250 lines GLSL. Kind of surprising that a somewhat useful 3D modeler can be expressed in ~2300 lines.
这个项目包含 2024 行 C 代码和 250 行 GLSL 代码。令人惊讶的是,一个相对实用的 3D 建模工具竟然可以在大约 2300 行中实现。
最后还给作者他装起来了:
Other jam participants seemed impressed by ShapeUp but I don’t feel like I achieved much. It’s a relatively simple project. If there is anything special about what I did, it is that I had the taste to choose what to make, the knowledge to make it, and the discipline to do it in a week.
其他参与者似乎对 ShapeUp 印象深刻,但我觉得自己并没有取得太多成就。这是一个相对简单的项目。如果说我做的有什么特别之处,那就是我有品味去选择制作什么,有知识去实现它,还有在一周内完成它的自律。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
WPS Office for Linux 12(个人版)正式上线:UI 视觉重构,新增多项 AI 功能
WPS Office for Linux 12 个人版现已在WPSOffice 官网上线,迎来 UI 视觉重构升级,以及新增多项 AI 功能,具体版本号为12.1.0.17881。 WPS Office for Linux 12 个人版更新日志如下: WPS 公共: UI 视觉重构升级 新建功能整体优化,支持新建智能文档、智能表格、轻维表 首页文件筛选项新增智能文档、智能表格、轻维表、思维导图、流程图 新增增值服务选项卡,支持 PDF 转换、输出为图片等增值功能 搜索能力升级,支持搜索本地和云端文件,提供全文检索增值服务 新增稻壳增值服务,支持使用海量模板和素材资源 优化本地文档分享上云和进入协作的流程 优化登录流程,支持多账号登录和切换 解决打印预览卡顿问题 解决自动创建系统默认下载目录的问题 解决特定系统下设置页面、登录页面乱码问题 解决特定系统下 PDF 文件卡顿,无法打开的问题 注:本次提供的增值功能 / 增值服务均需登录会员账号后使用,无会员权益时不会展示对应功能入口;Linux 个人版暂不支持会员购买,可在其他平台购买后,在 Linux 端上使用。 WPS 文字: 新增 A...
- 下一篇
deepin社区月报|deepin 23正式发布、DistroWatch国际排名第9......
查看原文 8 月社区数据总览 社区产品 1、deepin 23 正式发布 2024 年 8 月 15 日,deepin 23 发布,集成 Linux 6.6 LTS 内核及 6.9 主线双内核、AI 技术,带来 200 多项优化和新功能,旨在提供个性化和智能化的操作系统体验。 >>> 查看 deepin 23 发行注记 2、deepin IDE 全新版本重磅更新 deepin-IDE 研发团队根据用户的反馈和需求,推出的全新版本 deepin IDE 对 AI 智能化和顶部导航以及各种工具进行升级,也已支持玲珑构建。 >>> 查看 deepin-IDE 更新详情 3、deepin 深度适配 RISC-V 架构,打造全面兼容与高性能的开源桌面操作系统 作为目前国际 Linux 发行版排名最高的国产操作系统,deepin一直致力于为用户提供广泛的硬件支持。自2022年2月起,deepin就开始了RISC-V架构的适配工作,现已成功支持了x86、ARM、LoongArch以及RISC-V等主流CPU架构。在RISC-V硬件生态方面,deepin已与多家领先...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7,CentOS8安装Elasticsearch6.8.6
- MySQL8.0.19开启GTID主从同步CentOS8
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS8安装Docker,最新的服务器搭配容器使用
- Hadoop3单机部署,实现最简伪集群
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2全家桶,快速入门学习开发网站教程
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Linux系统CentOS6、CentOS7手动修改IP地址