如何用等角透视进行渲染? [复制]

2023-11-25

可能的重复:
使用opengl进行真正的等角投影

我想使用 Blender3d 使用的相同等距渲染进行渲染,我该怎么做?是否可以仅调用 glMultMatrix() ?我尝试谷歌搜索,但找不到任何可以导致这种渲染模式的工作矩阵。我试过这个http://en.wikipedia.org/wiki/Isometric_projection但它看起来真的很奇怪。

这是我现在使用的矩阵,以正常视角渲染:

    GLdouble f = cotan(fovy/2.0);
    GLdouble aspect = (GLdouble)width/(GLdouble)height;

    IsoMatrix.x[0] = f/aspect;
    IsoMatrix.y[0] = 0;
    IsoMatrix.z[0] = 0;
    IsoMatrix.w[0] = 0;

    IsoMatrix.x[1] = 0;
    IsoMatrix.y[1] = f;
    IsoMatrix.z[1] = 0;
    IsoMatrix.w[1] = 0;

    IsoMatrix.x[2] = 0;
    IsoMatrix.y[2] = 0;
    IsoMatrix.z[2] = (zfar+znear)/(znear-zfar);
    IsoMatrix.w[2] = (2.0*zfar*znear)/(znear-zfar);

    IsoMatrix.x[3] = 0;
    IsoMatrix.y[3] = 0;
    IsoMatrix.z[3] = -1;
    IsoMatrix.w[3] = 0;

    glMultMatrixd((GLdouble *)&IsoMatrix);

我该如何更改它,以便它会导致:http://rvzenteno.files.wordpress.com/2008/10/rvz_018.jpg ?


使用起来更方便glOrtho然后旋转轴:

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

如何用等角透视进行渲染? [复制] 的相关文章

  • 用 C++ 进行服装建模 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在编写一些软件 最终会绘制一个人体框架 可以配置各种参数 并且计划是在假人身上放置某种衣服 我研究
  • 使用 Unity 在构造函数中使用属性依赖注入

    好的 我在基类中定义了一个依赖属性 我尝试在其派生类的构造函数内部使用它 但这不起作用 该属性显示为 null Unity 在使用 container Resolve 解析实例后解析依赖属性 我的另一种选择是将 IUnityContaine
  • 使用Physics.Raycast 和Physics2D.Raycast 检测对象上的点击

    我的场景中有一个空的游戏对象 带有 2D 组件盒碰撞器 我将脚本附加到该游戏对象 void OnMouseDown Debug Log clic 但是当我点击我的游戏对象时 没有任何效果 你有什么想法 如何检测我的盒子碰撞器上的点击 使用光
  • Unix网络编程澄清

    我正在翻阅这本经典书籍Unix网络编程 https rads stackoverflow com amzn click com 0139498761 当我偶然发现这个程序时 第 6 8 节 第 179 180 页 include unp h
  • 启动时出现 OData v4 错误:找不到段“Whatever”的资源

    我正在构建新的 v4 服务 一切进展顺利 直到我为新模型 实体添加了新控制器 并在启动站点进行测试运行时收到此错误 控制器似乎编码正确 就像其他控制器一样 控制器 CustomersOData 中的操作 GetFeed 上的路径模板 Cus
  • 在新的浏览器进程中打开 URL

    我需要在新的浏览器进程中打开 URL 当浏览器进程退出时我需要收到通知 我当前使用的代码如下 Process browser new Process browser EnableRaisingEvents true browser Star
  • 互斥体实现可以互换(独立于线程实现)

    所有互斥体实现最终都会调用相同的基本系统 硬件调用吗 这意味着它们可以互换吗 具体来说 如果我使用 gnu parallel算法 使用openmp 并且我想让他们称之为线程安全的类我可以使用boost mutex用于锁定 或者我必须编写自己
  • XamlReader.Load 在后台线程中。是否可以?

    WPF 应用程序具有从单独的文件加载用户控件的操作 使用XamlReader Load method StreamReader mysr new StreamReader pathToFile DependencyObject rootOb
  • 读取文件特定行号的有效方法。 (奖励:Python 手册印刷错误)

    我有一个 100 GB 的文本文件 它是来自数据库的 BCP 转储 当我尝试导入它时BULK INSERT 我在第 219506324 行上收到一个神秘错误 在解决此问题之前 我想看看这一行 但可惜的是我最喜欢的方法 import line
  • 在 C# 中循环遍历文件文件夹的最简单方法是什么?

    我尝试编写一个程序 使用包含相关文件路径的配置文件来导航本地文件系统 我的问题是 在 C 中执行文件 I O 这将是从桌面应用程序到服务器并返回 和文件系统导航时使用的最佳实践是什么 我知道如何谷歌 并且找到了几种解决方案 但我想知道各种功
  • 用于检查项目文件中的项目变量和引用路径的 api

    我正在研究一个 net application VS2010 与 x 没有 解和变量号这些解决方案中的项目数量 我需要检查项目属性 特定于一定数量的项目 是否同质 并且检查 验证构建期间的参考路径 有没有一个API是这样的吗 如果没有 我该
  • C# Dns.GetHostEntry 不返回连接到 WiFi 的移动设备的名称

    我有一个 C 中的 Windows 窗体应用程序 我试图获取列表中所有客户端的主机名 下面给出的是 ra00l 来自此链接的代码示例 GetHostEntry 非常慢 https stackoverflow com questions 99
  • 使用 C 语言使用 strftime() 获取缩写时区

    我看过this https stackoverflow com questions 34408909 how to get abbreviated timezone and this https stackoverflow com ques
  • PlaySound 可在 Visual Studio 中运行,但不能在独立 exe 中运行

    我正在尝试使用 Visual Studio 在 C 中播放 wav 文件 我将文件 my wav 放入项目目录中并使用代码 PlaySound TEXT my wav NULL SND FILENAME SND SYNC 我按下播放按钮 或
  • 如何使用 Mongodb C# 驱动程序连接多个集合

    我需要将 3 个集合与多个集合合并在一起 lookup我在 C 驱动程序中尝试过 它允许我 lookup用户采集但无法执行秒 lookup用于设置集合 有人可以帮忙吗 db Transactions aggregate lookup fro
  • C++ 密码屏蔽

    我正在编写一个代码来接收密码输入 下面是我的代码 程序运行良好 但问题是除了数字和字母字符之外的其他键也被读取 例如删除 插入等 我知道如何避免它吗 特q string pw char c while c 13 Loop until Ent
  • 为什么在setsid()之前fork()

    Why fork before setsid 守护进程 基本上 如果我想将一个进程与其控制终端分离并使其成为进程组领导者 我使用setsid 之前没有分叉就这样做是行不通的 Why 首先 setsid 将使您的进程成为进程组的领导者 但它也
  • 如何在 C# 中调整图像大小同时保持高质量?

    我从这里找到了一篇关于图像处理的文章 http www switchonthecode com tutorials csharp tutorial image editing saving cropping and resizing htt
  • 如何在按钮单击时模拟按键 - Unity

    我对 Unity 中的脚本编写非常陌生 我正在尝试创建一个按钮 一旦单击它就需要模拟按下 F 键 要拾取一个项目 这是我当前的代码 在编写此代码之前我浏览了所有统一论坛 但找不到任何有效的东西 Code using System Colle
  • 使用 GROUP 和 SUM 的 LINQ 查询

    请帮助我了解如何使用带有 GROUP 和 SUM 的 LINQ 进行查询 Query the database IEnumerable

随机推荐

  • 蓝鸟中的嵌套承诺

    我试图弄清楚如何在蓝鸟库中正确使用承诺 我在代码中遇到了一些嵌套的承诺 我注意到在 bluebird 文档中它写道 如果您使用完整的 bluebird API 产品 您几乎永远不需要首先求助于嵌套承诺 还有许多其他关于承诺被滥用的博客文章嵌
  • 用于 SMS 的 ContentObserver [重复]

    这个问题在这里已经有答案了 我正在尝试提取发送的短信 我知道没有用于此目的的 BroadcastReciver 所以我发现我可以使用 ContentObserver 来监听数据库中的更改 我怎样才能实现这个 我的目标是仅获取发送的新短信并通
  • 两个相同的字符串不相等(不是指针/引用错误)

    我从文件中读取了一行 KatalogObrazk w 1 32 意味着我应该在以下位置查找数据 C Users NAME OF THE USER KatalogObrazk w 所以我就这么做了 但可怕的事情正在发生 在splitLine
  • WPF:即使显式设置 WindowState,窗口仍保持最小化

    我的应用程序有一个托盘图标 双击该图标可隐藏或显示应用程序窗口 我的问题是 如果窗口隐藏时处于最小化状态 我似乎无法将窗口带到前台 例如 假设用户最小化应用程序 然后双击托盘图标 然后应用程序窗口将隐藏并从任务栏中消失 当用户再次双击托盘图
  • GenyMotion 虚拟设备打开并立即消失

    我下载了带有虚拟 VM 包的 GenyMotion Android 模拟器 一切都很顺利 直到虚拟设备下载过程为止 虚拟设备已成功下载 但当我尝试通过点击播放按钮运行虚拟设备时 会弹出一个小窗口 显示正在初始化虚拟设备 然后启动虚拟设备 几
  • 如何仅在触发特定活动后启动 FCM ID 服务?

    假设我有一个LoginActivity用户可以在其中使用现有凭据注册或登录 我不想要FirebaseInstanceIdService生成令牌 除非用户已登录并且MainActivity应用程序的启动 谢谢 你无法阻止FirebaseIns
  • Mockito 间谍 - 调用内部类方法而不是监视间谍对象中的方法时

    我的内部类如下 public class ClassWithInnerObject private final InnerObject innerObject public ClassWithInnerObject innerObject
  • 获取shell中程序的执行时间

    我想在几个不同的条件下在linux shell 中执行某些操作 并且能够输出每次执行的执行时间 我知道我可以编写一个 perl 或 python 脚本来执行此操作 但是有没有办法在 shell 中执行此操作 恰好是 bash 使用内置的ti
  • 标准库容器和不完整类型的规则是什么?

    给定一个不完整的类型 struct S 那么以下声明是 S p ok pointer to incomplete types is allowed std deque
  • 将 Word 转换为 HTML,然后在网页上呈现 HTML

    我的项目正在进行中 但我不知道从哪里开始 我的老板希望能够以 HTML 格式显示 Word 文档 并且它看起来与 Word 文档相同 在一次又一次尝试让我在弹出窗口或灯箱中显示 Word 文档后 他一直坚持剥离 Word 的内容 将其转换为
  • 如何在boost log 2.0中记录编码器的行数?

    我可以为此使用 LineID 属性吗 我希望我可以使用 sink set formatter 来执行此操作而不是使用 LINE and FILE 在每个日志语句中 我为此苦苦挣扎 直到我发现这个片段 define LFC1 LOG TRAC
  • Swiftui [BUG] 导航视图和列表仅在 iPad 模拟器上不显示

    各种iPad模拟器上的空白页 前往Apple开发者网站下载以下教程项目 https developer apple com tutorials swiftui building lists and navigation 在任何 iPad 模
  • 在支持应用程序的模式下在 Mobile Safari 中使用 mailto: 链接时出错

    我在网页中有一个表单 其操作为 mailto email 其中电子邮件是真实的电子邮件地址 当我在 Mobile Safari 中以常规模式加载此页面时 即 不是在支持应用程序的模式下从主屏幕启动 效果很好 在我提交表单后 电子邮件应用程序
  • ASP.Net MVC 6 中的全局错误日志记录

    我正在测试 MVC 6 Web Api 并希望实现登录到全局错误处理程序 只是保证没有错误会在没有被记录的情况下离开系统 我创建了一个 ExceptionFilterAttribute 并将其全局添加到启动中 public class Ap
  • Angular2 http 重试逻辑

    我有一个带有基于令牌的身份验证机制的 API 成功登录后 我在浏览器的本地存储中存储两个令牌 访问令牌和刷新令牌 访问令牌包含在服务器端授权用户所需的所有必要信息 并且具有到期日期 当访问令牌过期时 客户端可以使用刷新令牌请求新的访问令牌
  • 如何使用新线程库中的 Task.Wait For Any?

    尝试使用Delphi中的线程库并行计算任务并使用TTask WaitForAny 为了得到第一个计算结果 偶尔会出现异常停止执行 异常时的调用堆栈 第一次机会例外 价格为 752D2F71 美元 异常类 EMonitorLockExcept
  • TextView 中的整数值

    如何在 TextView 中显示整数值 当我尝试时 出现错误android content res Resources NotFoundException String resource ID TextView tv new TextVie
  • 如何在Java 8中逐行读取文件?

    在Java 8中 我看到Files类中添加了名为lines 的新方法 该方法可用于在Java中逐行读取文件 它适用于大文件吗 我的意思是我们可以加载前 1000 行 然后加载第二组 1000 行吗 我有 1GB 的大文件 可以吗 有人可以分
  • 狮身人面像和“你的意思是……?”建议想法。它会起作用吗?

    我正在尝试想出最快的方法来提出搜索建议 起初我认为 Levenstein UDF 函数与 mysql 表相结合就可以完成这项工作 但是使用 levenshtein mysql 必须遍历表中的每一行 大量的单词 这会使查询非常慢 现在我最近安
  • 如何用等角透视进行渲染? [复制]

    这个问题在这里已经有答案了 可能的重复 使用opengl进行真正的等角投影 我想使用 Blender3d 使用的相同等距渲染进行渲染 我该怎么做 是否可以仅调用 glMultMatrix 我尝试谷歌搜索 但找不到任何可以导致这种渲染模式的工