< 返回版块

Mike Tang 发表于 2024-11-22 15:46

terminal-renderer - 在终端中渲染3D模型

这个项目是一个基于终端的3D渲染器。它支持加载.obj文件,并在终端中显示3D模型。可以使用不同的字符来表示不同的光照级别,支持相机移动、颜色渲染和八叉树优化。该项目的主要特性包括:

  1. 3D渲染功能,可加载.obj文件。
  2. 支持使用不同字符表示不同光照强度。
  3. 支持相机移动。
  4. 支持颜色渲染(目前仅限手动网格,不支持.obj文件)。
  5. 可选的八叉树优化,减少渲染时间。
  6. 显示三角形数量的功能。

该项目未来将继续改进,计划增加替代光照类型、纹理加载、完善文档注释等功能,并修复一些已知问题。该项目还提供了作为库使用的方式。总的来说,这是一个基于字符的轻量级3D渲染解决方案。

https://github.com/TageDan/terminal-renderer

对terminal-renderer的讲解文章

这篇文章介绍了如何从头开始构建一个3D终端渲染器。主要内容包括:

  1. 使用Rust语言编写代码。

  2. 设置项目结构和依赖。

  3. 创建射线(Ray)结构体,表示从屏幕像素发出的射线。

  4. 创建Screen结构体,表示屏幕尺寸和聚焦距离(决定视场角)。

  5. 创建Camera结构体,表示相机位置。

  6. 在render方法中,遍历屏幕上的每个像素,通过Screen、Camera计算射出的射线。

  7. 定义三角形(Triangle)和网格(Mesh)结构体,表示三维物体。

  8. 在渲染过程中,检测射线与哪个三角形相交,从而确定像素颜色。

  9. 使用ANSI转义序列在终端中着色和控制光标。

https://tagedan.github.io/posts/terminal_rendering.html

loco - 一个受Ruby on Rails启发的Rust web框架

Loco是一个受Ruby on Rails启发的Rust web框架。它的目标是通过约定优于配置的理念和减少样板代码,提高开发人员的生产力。Loco具有以下主要特性:

  1. 约定优于配置:像Rails一样,Loco强调简单性和生产力,减少了配置的需求。它使用合理的默认值,让开发人员可以专注于业务逻辑而不是配置。

  2. 快速开发:Loco设计的目标是提高开发效率,通过减少样板代码和提供直观的API,让开发人员可以快速迭代和构建原型。

  3. ORM集成:使用强大的实体对象来建模业务,无需编写SQL。可以直接在实体上定义关系、验证和自定义逻辑。

  4. 控制器:处理Web请求参数、主体、验证,并呈现与内容相关的响应。使用Axum框架获得最佳性能、简单性和可扩展性。

  5. 视图:Loco可以集成模板引擎,从模板生成动态HTML内容。

  6. 后台作业:在后台使用基于Redis的队列或线程执行计算或I/O密集型作业。

  7. 调度器:简化传统的crontab系统,更优雅地安排任务或shell脚本。

  8. 邮件发送:通过现有的后台工作基础设施在后台发送邮件。

  9. 存储:方便操作文件,支持内存、磁盘或云服务如AWS S3。

  10. 缓存:提供缓存层以提高应用程序性能。

Loco还提供了创建新应用的命令行工具,可以生成包含所需组件的应用程序框架代码。

https://github.com/loco-rs/loco

--

From 日报小组 Mike

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页