3dll 使用C++实现简单的3D渲染

代码

代码请见github代码仓库 https://github.com/gaowanlu/3dll

为什么写了它

没学过计算机图形学、图像处理课程的菜鸡最近在总结线性代数、突然脑子一热代码上头了 、线代的魅力太精彩了。
如果能够理解下面的大致过程一定会会对线性变换、基变换、以及可能我们听说过的图像坐标系、世界坐标系、摄像机坐标系。
这不仅仅在某个方向涉及这些,例如机器人视觉定位SLAM以及3D动画、游戏开发都会与这些密切相关,以前我也接触过RoboMaster的机器人视觉开发、做过图像处理,
但这是我的一个尝试,如果你有兴趣的话可以尝试一下,我想会非常有趣,这里并没有选择专业的渲染工具,如OpenGL、以及图像处理的OpenCV,我想用一个简单的例子理解较多的知识是最重要的。
在此我们使用EasyX与Eigen3 ,有人说为什么不去学OpenGL、我只能说术业有专攻我从没接触过他,我用简单的实现原理来帮助我理解线性代数、而非为了渲染效率工程专业性上考虑。

实现效果

1、相机坐标系的旋转

2、自定义填充模型

3、鼠标点击且移动鼠标进行x与y轴的旋转、Ctrl+滚轮 支持z轴旋转

4、滚轮对为相机位置向量进行放缩

快速开始

git clone https://hub.fastgit.xyz/gaowanlu/3dll.git

或在Github https://github/gaowanlu/3dll、获取最新的工程效果

请使用Visual Studio 2022 打开项目 ,或者自己使用其他IDE进行构建

线性代数

课程推荐

  • Bilibili MIT线性代数课程 https://www.bilibili.com/video/BV1ix411f7Yp
  • 线性代数的本质 https://www.bilibili.com/video/BV1ib411t7YR

路漫漫

我们有时我们觉得一切东西没有太大用途、那是我们的认知水平还不够、在学习的路上、书山有路勤为径、学海无涯苦作舟。

C++实现简单的3D渲染【线性代数】相关推荐

  1. 了解3D世界的黑魔法 - 纯Java构造一个简单的3D渲染引擎

    前言 当今用于游戏和多媒体的3D渲染引擎在数学和编程的复杂性上足以令大多数人望而生畏,从编程接口的OpenGL再到逼真到令人叹为观止的UE5(虚幻五)引擎,后者单单引擎本身(不含调试)的大小就达到了将 ...

  2. 自制软3D渲染程序 之一 3D起草程序

    自制软3D渲染程序 0.介绍 很久之前就开始写CPU 3D渲染程序了.一开始的打算是使用EGE(Easy Graphics Engine)或者EasyX, 因为接触比较多,并且也使用这两个绘图工具做了 ...

  3. 预览速度提升30倍,这是什么黑科技?(天猫618之3D渲染篇)

    简介: 天猫618宣布的 3D 购物时代,相信有很多小伙伴好奇,这背后有哪些"黑科技"?橙子从以下三点为你揭秘--3D实景复刻.3D渲染.3D算法,上周讲了<天猫618宣布开 ...

  4. 初探Stage3D(一) 3D渲染基础原理

    关于本文 本文主要想介绍一下3D渲染的基本流程,及怎样把一个三角形(0,1,0),(1,0,1),(0,0,1)最终渲染到屏幕上来.文章的目的是对3D渲染流程做一个简单的介绍,其中不涉及任何语言的AP ...

  5. 小程序 mathjs渲染公式_Mac 3D渲染和动画制作----KeyShot 9 Pro

    KeyShot 9 Pro for Mac是应用在Mac上的一款3D渲染和动画制作软件,keyshot是您快速创建精彩视觉效果所需的一切.在实时3D渲染工作流程显示结果即时,缩短了创建逼真的产品拍摄的 ...

  6. 3D渲染集群,听说过吗?

    我们先说说3D渲染涉及哪些领域: 1      什么是3D渲染 简单粗暴的讲:就是将虚拟世界里的3D模型,变为(人眼看到)平面图片. 比如你画了个3D模型,经过渲染,变成了最终我们看到的图片: (3D ...

  7. 国内做 3D 渲染和游戏引擎的码农们都在哪里获取技术信息?

    国内做 3D 渲染和游戏引擎的码农们都在哪里获取技术信息? 国内的做 3D 渲染,图形有关的码农们,主要都是去哪里获取技术帮助呢?尤其是移动这边. 现在公司里主要任务就是在 iOS 上用 GLES 做 ...

  8. C# 使用DirectX中的Device类实现3D渲染

    C# 使用DirectX中的Device类实现3D渲染 1.Device类进行简单介绍 Device类把真实的图形卡从具体的硬件中抽象出来,在类中定义一组通用函数,这些函数将直接操作图形卡硬件. 函数 ...

  9. 2021 年最佳 3D 渲染 GPU

    高质量的视觉图形对于媒体.电影.平面设计.动画.空间研究.建筑.室内设计等行业至关重要.所有这些行业都依赖于渲染过程来获得各种专业项目的所有结果.过去几年,GPU渲染技术如风暴般席卷IT行业.虽然 G ...

最新文章

  1. 2022年值得关注的8个人工智能趋势
  2. 写一个测试工具类,只在debug时运行,而release时自动移除代码,适用于gradle项目(idea,android studio等)
  3. 环形链表解法一:快追慢
  4. C++学习笔记3[条件判断语句]
  5. DIY逗比的时钟,制作资料100%开源!
  6. java代码安全检测机制_全面解析:java中的反射机制,内含代码验证解析
  7. sqlplus中清理屏幕语句_sqlplus的小秘密[转]
  8. java的Teacher类_java类的继承 - osc_tauwfamo的个人空间 - OSCHINA - 中文开源技术交流社区...
  9. 诽谤、窃密、禁令、和解:文远知行创始团队纠纷暂时完结
  10. JDK有三种字体绘制系统
  11. 用Java打印菱形(奇数行菱形)
  12. 需求分析说明书和需求规格说明书
  13. 光载无线(RoF, Radio over Fiber)通信技术
  14. ico小图标的下载及使用
  15. 三星基于新思科技良率学习平台加速7纳米技术节点的新品量产
  16. 中国的顶级黑客在国际上是一个什么样的水平?
  17. 【高并发高性能高可用之海量数据MySQL实战-3】-MySQL逻辑架构图
  18. AD19 编译报错:has only one pin 和 floating net label
  19. java之冒泡排序8个数
  20. 什么是JDBC(一)-使用JDBC-详解JDBC系列

热门文章

  1. matlab中 hold on 与hold off的用法
  2. 24 solar terms隐私条款
  3. 作为非技术背景的创始人,你希望找到一位什么样的CTO?
  4. 2020校招多益网络软件研发笔试
  5. 事态升级管理程序_17紧急事态升级管理程序
  6. bwa 软件用法简介
  7. analyticdb for mysql_一键建仓之AnalyticDB for MySQL
  8. TP5使用pgsql报错“没有匹配指定名称和参数类型的函数. 您也许需要增加明确的类型转换”的解决办法
  9. mysql- 数据库的6种日志:错误日志、通用日志、慢日志、二进制日志、redo log、undo log
  10. java版溺尸掉三叉戟吗_我的世界:得不到溺尸的三叉戟怎么办?概率太低,版本要求不同!...