Ogre/Mogre:相机两点透视

2023-11-30

我正在显示一个场景,其中有一些立方体。相机采用的是透视法。一切都很好,但我希望垂直线是平行的(两点透视:http://en.wikipedia.org/wiki/Perspective_(graphical)#两点透视).

从正面观察立方体时:

我想要的是:

+-----+
|     |
|     |
+-----+

我得到的(夸大的):

+--------+
 \      /
  \    /
   +--+

我尝试过调整相机的视场角,但没有成功。

到目前为止我的尝试:

Camera = SceneManager.CreateCamera(CameraName);
float q = 45;
float d = 5000f;
Matrix4 m = new Matrix4(
    1, 0, 0, (float)(Math.Sin(q)/d),
    0, 1, 0, 0,
    0, 0, 1, (float)(Math.Cos(q)/d),
    0, 0, 0, 0
    );
Camera.SetCustomProjectionMatrix(true, m);

伯克利大学有一个关于不同透视变换和您需要使用的矩阵的页面。两点透视变换为:

  _                    _
 |  1   0   0 sin(q)/d  |
 |  0   1   0     0     |
 |  0   0   1 cos(q)/d  |
 |_ 0   0   0     0    _|

Where q是用于旋转点(而不是轴)的角度,d无法解释(!),但我认为这是相机距焦平面的距离。

enter image description here

Source

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ogre/Mogre:相机两点透视 的相关文章

  • 如何使用更少的包绘制二元正态分布的表面和轮廓

    我将绘制二元正态分布的 3D 曲面及其轮廓 可以是任何二元正态分布 我想用persp and contour在我的画中 我在网上搜索了一下 但发现了很多方法 大多数人都使用过一些软件包 但我想以使用更少的软件包甚至不安装任何软件包的方式来执
  • 如何在 Three.js 中从三角面获取多边形?

    我在网上查了一下是否有人遇到同样的问题 我正在使用 Three js 我有一个 3DObject 其中可能包含孔 面是三角形的 假设我想从上面看到它 我的目标是获得一个代表顶面周长的多边形 这对我来说意味着不再有三角面 而只有 1 个多边形
  • OpenGL Z 偏置(多边形偏移)限制

    我有两个共面的多边形 我尝试做 glEnable GL POLYGON OFFSET FILL glPolygonOffset 0 1 并期望其中一个明显 位于 另一个之上 这种情况直到大约 70 75 个单位之外 近剪裁平面为 1 远剪裁
  • 如何将 3D 图像输出到 3D 电视?

    我有一台 3D 电视 如果我不至少尝试让它显示我自己创作的漂亮 3D 图像 我就会逃避我的责任 作为一个极客 我之前已经完成了非常基本的 OpenGL 编程 因此我了解所涉及的概念 假设我可以为自己渲染一个简单的四面体或立方体并使其旋转一点
  • 光线追踪三角形

    我正在用java编写一个光线追踪器 并且我能够追踪球体 但我相信我追踪三角形的方式有问题 据我了解 这是基本算法 首先确定射线是否与plane三角形已打开 剪裁所有点 使它们与三角形位于同一平面上 因此xy以平面为例 根据沿着新平面向任意方
  • 如何创建热图来说明控制发散调色板中心颜色位置的网格差异?

    我有两个人脸 3D 网格 我希望使用热图来说明差异 我想使用红蓝发散色阶 我的数据可以查到here https github com Patricklv How to create heatmap illustraing 3D mesh d
  • 如何仅剪切剪切平面的交集(而不是并集)?

    在 OpenGL JOGL 中 当使用多个剪切平面时 似乎会应用所有剪切平面的并集 我想要的是路口要应用的所有剪裁平面 这可能吗 请参阅下面的简化二维示例 Edit An example of clipping by vertex shad
  • 在 RGL 中将立方体绘制到 3D 散点图中

    我正在尝试向 3D 散点图添加较小的立方体 网格 具有指定边长 我希望立方体位于原点 我该怎么做呢 我已经玩过cube3d 但我似乎无法将立方体正确定位 也无法使其成为网格 因此我可以看到它包含的数据点 这是我所拥有的 library rg
  • 如何在 React Native 中渲染自定义 3D 对象

    我已经成功使用 Three js expo Three 和 expo gl 在 React Native 中配置了红色立方体的 3D 渲染 但我想让用户渲染他们自己可能拥有的自定义 3D 对象 obj 或 mtl 扩展名 但我不确定如何让他
  • 如何将平面上的 3D 点转换为 UV 坐标?

    我有一个 3d 点 定义为 x0 y0 z0 该点属于一个平面 定义为 a b c d normal a b c and ax by cz d 0 如何将 3d 点转换或映射为一对 u v 坐标 这一定是非常简单的事情 但我无法弄清楚 首先
  • 不明确的 OpenGL 默认相机位置

    在我的Opengl程序中 在我应用透视投影矩阵之前 每当我绘制一些对象时 我都会在世界坐标系的原点处绘制它 但是几乎所有Opengl教程都指出相机 我的投影视图 位于原点朝向正 z 轴 这取决于您稍后如何处理投影矩阵中的 z 值 但是如果这
  • WPF 3D - 在复杂几何体上映射渐变画笔

    我想问是否有人知道如何在 WPF 3D 中的复杂对象上映射渐变画笔 结果应该类似于 matlab 中的 3D 图像 例如 3D 函数 假设您有一些想要可视化的 3 维数据 并且想要通过颜色区分某些级别的值 给定一个 GradientBrus
  • 如何向 3D 表面添加文本

    我使用plot surface 创建了具有平行四边形底座的矩形棱柱 我需要向其中一个表面添加一些文本 我试过ax text 3 0 5 1 red 1 1 0 color red 但文本在表面上不可见 import matplotlib p
  • 在 3D 场景中实现“抓取”相机平移工具

    在我的场景中 我有想要 抓取 的地形 然后在移动光标时让相机平移 其高度 视图向量 视野等全部保持不变 因此 最初的 抓取 点将是世界空间中的工作点 我希望在拖动时该点保留在光标下方 我当前的解决方案是获取前一个和当前的屏幕点 取消投影它们
  • 如何计算正切和副法线?

    谈谈OpenGL着色语言 GLSL 中的凹凸贴图 镜面高光之类的东西 I have 顶点数组 例如 0 2 0 5 0 1 0 2 0 4 0 5 法线数组 例如 0 0 0 0 1 0 0 0 1 0 0 0 世界空间中点光源的位置 例如
  • 在 Unity 中平滑动态生成的网格?

    给定 Unity 和 C 中的网格 其本身是通过合并更简单的基础网格实时创建的 我们如何在运行时 将其变成平滑的 几乎像包裹在布中的网格版本一样 不是完全凸出的版本 而是更圆润 软化锋利的边缘 桥接深间隙等 理想情况下 表面也将像 平滑角度
  • Godot 3d 得到向前矢量

    我想知道是否有办法获取 godot 3d 中空间节点的前向向量 统一起来 这就是transform forward Godot 给了我一个旋转向量 但我不知道如何将其转换为方向向量 戈多版本的transform forward是什么 前进是
  • 现代 GPU 上的纹理更改(和其他状态更改)成本

    我正在编写一个基于场景图的图形引擎用于建模目的 我正在使用 XNA 4 在我读过的许多地方 渲染期间应该最小化纹理变化 和其他状态变化 因此我必须按材质等对图元进行排序 我在 XNA 4 中创建了一个小型测试应用程序 它使用单个纹理渲染数百
  • 如何确定透视变换后的点在新图像平面中的位置?

    我使用 OpenCV Python Numpy 图像中有三个点 我知道这些点的确切位置 P1 P2 N1 我要将图像转换为另一个视图 例如 我将透视图转换为侧视图 如果这样做 我将无法获得图像平面中这三个点的确切位置 我应该以一种可以获得这
  • 关于Marching Cubes算法的澄清

    关于Marching Cubes 我对其算法和实现有一些疑问 我已经阅读了 Marching Cubes 的 Paul Bourke 优秀文章以及网站上可用的源代码 但是 我在理解以及如何以自己的方式实现算法方面仍然遇到了一些问题 问题如下

随机推荐

  • 将消费者偏移量重置为 Kafka Streams 的开头

    我正在使用 Kafka 流 并且想要将一些消费者偏移量从 Java 重置到开头 KafkaConsumer seekToBeginning 听起来是正确的做法 但我使用 Kafka Streams KafkaStreams streams
  • 可访问性不一致:属性类型

    这段代码有什么问题 public ScreenManager ScreenManager get return screenManager internal set screenManager value ScreenManager scr
  • 从外部访问 EC2 实例内 minikube NodePort 上运行的应用程序

    我有一个 EC2 实例 说它的 IP 是 44 XX XX XX 说 IP1 我有一个在这个 EC2 实例中运行的 minikube 说它的 IP 是 10 XX XX XX 说 IP2 我通过在 EC2 实例中执行 minikube ip
  • Outlook 是否在其电子邮件元素中嵌入了 MessageID 或等效内容?

    我想要自动化 Outlook 以便我可以下载电子邮件的 各个部分 以便我可以将相关消息捆绑在一起 据我所知 电子邮件通常有一个 MessageID 来达到此目的 以便可以在上下文中查看电子邮件 就像新闻阅读器中的 线程 捆绑在一起一样 Ou
  • Chart.js - 设置 Y 轴格式

    我在用着Chart js绘制一个简单的条形图 我需要将其 Y 轴格式化为 123456 05 至 123 456 05 我不明白如何使用scaleLabel I saw 有人指着 to JS 微模板 但不知道如何与我们一起使用它scaleL
  • 有没有办法以编程方式禁用特定布局中的所有项目?

    我最近在一款游戏中添加了全球高分功能 这让很多人感到不安 所以我想添加禁用它的选项 我所做的是 在我的设置活动视图中 我添加了以下内容
  • 如何根据包含空格的字段名对 ADO 表进行排序?

    我正在使用 Delphi 但这是一个简单且普遍的问题 我正在执行以下操作 var ArticlesTable TADOTable begin ArticlesTable DisableControls ArticlesTable Sort
  • sql中行的级联复制

    我在这里找到了这个线程 http www sqlteam com forums topic asp TOPIC ID 16836我也有完全一样的问题 引用 Rob Pearmain 写道 我有 3 张桌子来存放问题 表 1 问题 字段 ID
  • 如何在httppost/httpget请求中设置标头

    我有一个像 post H Authorization Token token 2hwhdh443hdhfh43j3jdej3j3 这样的网络服务 如何在 httpPost get 请求中设置此标头 我的代码在这里 HttpClient cl
  • 是否可以为 .NET 编写函子接口?

    函数式语言通常具有Functor类型 接口 在 NET 中 Functor 接口是可通过泛型类型实现的接口 T a 有一个名为 fmap 的函数 该函数从容器类型 A 到不同的类型 B 并返回一个容器类型为 B 的对象 例如一个类型List
  • 使用 boost::spirit 读取空值

    我想将 CSV 读入结构中 struct data std string a std string b std string c 但是 我想读取空字符串以确保所有值都位于正确的位置 我将该结构调整为 boost fusion 因此以下工作有
  • 如何设置 Visual Studio Code 来编译 C++ 代码?

    微软的视觉工作室代码编辑器相当不错 但它没有默认支持构建 C 项目 我如何配置它来执行此操作 构建任务是特定于项目的 要创建新项目 请在 Visual Studio Code 中打开一个目录 Following the instructio
  • 使用 jQuery 解析远程内容的最佳实践是什么?

    在 jQuery ajax 调用检索整个 XHTML 文档之后 从结果字符串中选择特定元素的最佳方法是什么 也许有一个库或插件可以解决这个问题 jQuery 只能选择字符串中存在的 XHTML 元素 如果 W3C 规范中的 div 中通常允
  • 使用 Retrofit 将 json 结构转换为数组

    我遇到了 Retrofit 和 Trakt tv API 中丑陋的 json 对象的麻烦 season 1 episodes 1 true 2 true 3 false 4 false 5 false 6 false 7 false epi
  • 直接从 JSON 文件获取数据帧?

    首先 我要感谢所有为 Stackoverflow 和 R 做出贡献的人 我是那些不太擅长编程的 R 用户之一 但勇敢地尝试在工作中使用它 所以下面的问题可能是微不足道的 问题就在这里 我需要将 JSON 格式的文件导入到 R library
  • 滚动视图中的多个文本视图

    我有一项活动以文本形式显示步行方向 我有一组 TextView 其中 5 个包含 步骤 x 其中 x 是步骤号 另外 5 个 TextView 包含实际说明 问题是最后一个 TextView 离开屏幕 所以我想让这组 TextView 滚动
  • elasticsearch 2.0 父子孙子

    我的操作 父级 国家 地区 子级 分支机构 孙级 员工 PUT company 映射 分支 父 类型 国家 员工 父 类型 分支 我想添加一个孙子employee2 父级是分支 PUT company employee2 mapping e
  • 结构名称是否指向第一个元素?

    我发现了一些类似的问题 但没有一个有多大帮助 结构名称是否指向结构的第一个元素 类似于数组 struct example int foo int bar struct example e e foo 5 e bar 10 printf d
  • 隐藏提交按钮直到表单有效

    我对 Jquery 相当陌生 所以这可能是一个简单的问题 但是有没有办法隐藏表单上的提交按钮 直到验证所有字段 验证需要是 键入时 的解决方案 基本上我有 3 个字段 名字 姓氏和电子邮件 我希望提交按钮保持隐藏状态 直到填写了两个 名称
  • Ogre/Mogre:相机两点透视

    我正在显示一个场景 其中有一些立方体 相机采用的是透视法 一切都很好 但我希望垂直线是平行的 两点透视 http en wikipedia org wiki Perspective graphical 两点透视 从正面观察立方体时 我想要的