在像素着色器中计算世界空间坐标

2024-03-04

我有一个像素着色器,我想根据我的世界空间坐标计算每个像素的位置。我该怎么做?我需要什么?

我有一个ps_input具有 float4 位置的结构:SV_POSITION。我认为这很重要,但存储在里面的值似乎有点有趣。

我似乎无法弄清楚它们有什么关系。例如,如果一个像素是 2d 的,那么它为什么有一个 w 分量或 z 分量呢?

我在用着DirectX像素着色器位于HLSL. C++作为我在 CPU 上的编程语言。

任何帮助,将不胜感激。


如果我没记错的话,SV_POSITION只是0->W 0->H,所以它描述了它在屏幕上的位置。该网站包含更多信息:http://msdn.microsoft.com/en-us/library/windows/desktop/bb509647(v=vs.85).aspx http://msdn.microsoft.com/en-us/library/windows/desktop/bb509647(v=vs.85).aspx

为了将像素转换到世界空间,您可以将像素坐标转换回工作空间。数学上有点棘手(我认为是这样!) 但这篇文章应该可以帮助你!http://jcoluna.wordpress.com/2011/01/27/reconstructing-view-space-position-from-depth/ http://jcoluna.wordpress.com/2011/01/27/reconstructing-view-space-position-from-depth/

否则明智地搜索像素以查看空间。我知道你想要世界空间,但将所有内容转换为视图空间可能会更快。

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

在像素着色器中计算世界空间坐标 的相关文章

  • 从四元数查看矩阵

    我目前正在构建自己的四元数相机 据我所知 您只需要一个四元数即可完全指定相机的方向 如果我错了 请纠正我 那么 我将如何创建视图矩阵 顺便说一下 我使用 C 作为编程语言 任何帮助 将不胜感激 首先是一些注意事项 您会在网络上和有关该主题的
  • Vim 从光标上次消失的位置开始

    如何让 Vim 始终从我上次退出给定文件时所在的行开始 将其放入您的 vimrc 中 When editing a file always jump to the last cursor position au BufReadPost if
  • 在像素着色器中计算世界空间坐标

    我有一个像素着色器 我想根据我的世界空间坐标计算每个像素的位置 我该怎么做 我需要什么 我有一个ps input具有 float4 位置的结构 SV POSITION 我认为这很重要 但存储在里面的值似乎有点有趣 我似乎无法弄清楚它们有什么
  • 是否可以捕获音频输出并对其应用效果?

    我希望能够使用 NET 和 DirectSound所有输出来自我的音频设备的声音并对它应用效果 我快速浏览了 MSDN 上的文档 似乎没有任何关于如何执行此类操作的解释 我在其他地方读到 您最好编写一个驱动程序放在真正的音频驱动程序前面 并
  • DirectX 与 VB.NET

    是否有一组有关 DirectX 9 或更高版本 的文档 其中显示了将 DirectX 9 或更高版本 与 VB NET 一起使用的对象 方法 属性 事件和示例代码 最新的 SDK 包含 C 的详细信息 而 Windows DiectX 图形
  • 生成球体的顶点

    在 DirectX 移动照明示例中 圆柱体是按以下方式生成的 for DWORD i 0 i lt 50 i FLOAT theta 2 D3DMX PI i 50 1 pVertices 2 i 0 position D3DMXVECTO
  • 如何获取相对和绝对光标位置?

    我怎样才能得到当前光标位置与SWT I need The absolute位置 仅相对于当前Display 位置relative到当前活动的Control 这获取光标位置相对于当前显示 import org eclipse swt widg
  • 在 HLSL 中绘制超级椭圆

    更新 关于如何使用超级公式绘制一个的答案在最后 I need to draw a rounded rectangle such as this one using a SuperEllipse http en wikipedia org w
  • 如何使用 ComPtr 中包装的 Direct3D 11 指针来获取 11.1 接口?

    我正在遵循教程 并将通常的初始化转换为使用 ComPtrs 直到这一行 ID3D11Device g pd3dDevice nullptr ID3D11Device1 g pd3dDevice1 nullptr Obtain the Dir
  • 在 DirectX 中创建和使用纹理

    我正在尝试使用代码创建纹理 将其转换为着色器资源视图 然后将其应用到平面 但是我得到的只是一个黑色方块 我尝试使用 msdn 上的示例代码无济于事 还尝试使用 unsigned char 和 float float 如下所示 因为这就是我需
  • 在顶点着色器中指定 3D 渲染目标的目标层? [HLSL]

    在 HLSL Directx11 中工作时 我发现有两种绑定 3D 渲染目标的方法 要么绑定整个目标 要么在指定图层时绑定它 如果绑定整个目标 如何在 HLSL 代码中指定应用输出颜色的图层 我怀疑这需要几何着色器 这是正确的吗 是否有任何
  • 当父div在屏幕上不可见时,jQuery UI位置函数问题

    我在 jQuery UI Position 函数方面遇到了一个奇怪的问题 有一个父 div 大于屏幕高度 其中还有另一个小 div 我的函数告诉小 div 位于其父级的底部 当底部可见时 一切正常 但是当由于窗口大小而导致底部不可见时 位置
  • 放大/缩小或调整浏览器窗口大小时,Bootstrap Popover 显示在错误的位置

    当我通过放大或缩小来调整任何浏览器窗口的大小时 弹出窗口未更新位置并显示在错误的位置 如何在重新调整 缩放浏览器窗口时更改 Bootstrap Popover 的放置 位置 它似乎在 Bootstrap 2 2 1 中工作正常 除非我错误地
  • 我如何找到字符串中多个子字符串的位置(Python 3.4.3 shell)

    以下代码显示 word 在字符串中出现一次的位置 我如何更改我的代码 以便如果 单词 在字符串中出现多次 它将打印所有位置 string input Please input a sentence word input Please inp
  • Direct3D 中的矩阵多阶

    关于在 Direct3D 中乘法矩阵以获得结果 我收到了两个相互矛盾的答案 教程确实规定从左到右相乘 这很好 但这不是我想象的方式 这是一个例子 OpenGL 从上到下阅读 GLRotatef 90 0f GLTranslatef 20 0
  • DirectX 11 ClearRenderTargetView 恢复透明缓冲区?

    我正在尝试创建一个使用 directx 进行绘制的窗口opaque上面的内容透明的视图 即桌面显示出来 使用 DirectX11 我尝试执行以下操作 但它并没有使背景透明 事实上 我输入的任何不透明度值都会给出完全相同的结果 我在做什么 f
  • 从哪里可以获得 Microsoft.DirectX.dll?

    我不知道从哪里得到它 只是微软的 SDK 吗 如果是 如何将其添加到我的项目 Visual Studios 2010 C 中 托管 DirectX 包装器已过时 不再包含在 DirectX SDK 中 最后一个版本是 2010 年 2 月发
  • Windows 8 SDK 中的 DirectX

    Summary 是否应该从针对 Windows 8 的应用程序中删除 directX 包含文件 Details 我是 Windows 开发新手 我正在尝试使用 Visual Studio 2012 如果可能 在 Windows 8 上编译
  • 为什么 ion-fab-button 没有固定在 ionic 4 popover 内?

    我正在开发一个 ionic 4 应用程序 并且创建了一个弹出窗口 在这个弹出窗口中我想使用ion fub button它必须固定在弹出窗口的右上角位置 我写的 HTML 代码是这样的
  • 如何在具有动态高度的固定 div 标题后设置 div 内容样式

    以下情况 div style width 100 place holder for header div div style width 100 margin top 100px content div 我需要标题始终可见且位于顶部 因此该

随机推荐

  • 哪些 GOF 设计模式具有完全不同的实现(java 与 Scala)

    最近我读到以下问题 在 Scala 中是否有使用访问者模式的用例 我是否应该在每次使用 Scala 时都使用模式匹配 Java 中的访问者模式 标题问题的链接 Scala 中的访问者模式 https stackoverflow com qu
  • 文本编辑器的数据结构

    这是一道面试题 您将使用什么数据结构来存储文本编辑器中的文本 在老式的 ZX Spectrum 上 一个 或多个 我不知道 文本编辑器使用了非常简单的结构 有一个很大的缓冲区 占用了所有空闲 RAM 文本在光标处分成两部分 光标之前的部分放
  • Gradle:如何通过运行 Gradle 4.1 任务通过 eclipse ECJ(JDT 核心)编译 Java

    我有一个可以很好构建的项目日食 欧洲法院 But 甲骨文javac无法构建它 一些原因如链接中所示 ecj和javac的区别 https stackoverflow com questions 3061654 what is the dif
  • C语言中的二维数组如何变成一维数组?

    如果有人可以向我解释以下行为 我将不胜感激 假设我声明一个静态二维数组 float buffer NX NY 现在 如果我想填充这个数组 我注意到可以这样做 initarray buffer NX NY define INITDATAVAL
  • 没有 Redux 的情况下组合Reducer

    我有一个没有 redux 的应用程序 我使用钩子和钩子 useReducer context 处理全局状态 我有 1 个 useReducer 它就像一个 Redux 商店 但要做到这一点我只能发送 1 个减速器 在该减速器中 我拥有所有状
  • 根据数组中的另一个 id 仅对多数组中的第一项进行排序 (PHP)

    我不知道该怎么做 请参阅下面我的数组 我在 while 循环中运行这个数组 需要先找到 attach id 对于每个 topic id 并可以使用 topic id在循环中设置的 正确的输出将是 第一个循环 attach id gt 179
  • 神经网络在一个纪元后趋于平坦

    我正在使用 keras 创建一个卷积神经网络 尝试将图像分类为两个不同的类 并且出于某种原因 在第一个纪元之后 准确性永远不会改变 使用 Keras 后to categorical 我的标签看起来像 0 1 1 0 1 0 0 1 我的模型
  • Amazon SES SMTP Python 用法

    我试图诊断为什么通过 Amazon SES 发送电子邮件无法通过 python 工作 以下示例演示了该问题 其中user and pass设置为适当的凭据 gt gt gt import smtplib gt gt gt s smtplib
  • System.Timers.Timer 与 System.Threading.Timer

    我最近一直在检查一些可能的计时器 并且System Threading Timer https learn microsoft com en us dotnet api system threading timer and System T
  • 即使有标记,pytest-django 也不允许数据库访问

    我很难找出我的设置出了什么问题 我正在尝试测试登录视图 无论我尝试什么 我都会得到 Database access not allowed use the django db mark or the db or transactional
  • 统一处理非托管 API 中的错误代码

    我正在围绕一个相当大的非托管 API 编写一个包装器 几乎每个导入的方法在失败时都会返回一个常见的错误代码 现在 我正在这样做 ErrorCode result Api Method if result ErrorCode SUCCESS
  • Playframework 与 CSRF:“会话中未找到 CSRF 令牌”?

    我正在使用 Playframework 及其内置 CSRF 过滤器和 Security Authenticator 系统制作一个简单的身份验证系统 但我遇到了一个问题 当用户填写登录名 密码并提交输入时 出现以下错误 在会话中找不到 CSR
  • 如何更新 SQL 中游标获取的列

    在进一步讨论之前 是的 我知道与基于集合的操作相比 游标的性能很差 在这种特殊情况下 我在包含 100 条左右记录的临时表上运行游标 并且该临时表始终相当小 因此性能不如灵活性那么重要 我的困难是我无法找到如何更新游标获取的列的示例 以前
  • 在 Git 中运行预提交挂钩。有没有办法验证脚本是否正在运行?

    我想运行 Git 按照博客的建议 我使用了 git init初始化存储库 然后 git在 hooks 目录中存在钩子的位置创建文件夹 然后按照我重命名的脚本的建议pre commit sample as pre commit它不起作用 所以
  • 如何在Qt中保存对话框的状态?

    假设对话框中有复选框 选项等控件 如何在 Qt 中保存对话框的状态 我应该使用 QSettings 还是其他东西 Thanks 我遇到了同样的问题 谷歌搜索并没有太大帮助 所以最后我写了自己的解决方案 我创建了一组函数 用于在创建和销毁时读
  • Keras:为什么损失函数必须为每个批次项返回一个标量,而不仅仅是一个标量?

    我正在 Keras 中编写一个自定义损失函数 但遇到了以下问题 为什么 Keras 损失函数必须为每个批次项返回一个标量 而不是仅返回一个标量 我关心的是整批的累计损失 而不是每件商品的损失 不是吗 我想我已经明白了 fit 有争论samp
  • 更好地理解 C# 泛型

    我查看了一些使用 C 泛型的示例代码 为什么以及何时应该使用它们 所有的例子都很复杂 我需要一个简单 清晰的示例来帮助我开始使用 C 泛型 一个非常简单的例子是通用的List
  • 使用 PHP 5.5 安装 xdebug

    我读了很多答案 但不明白为什么 xdebug 不起作用 php ini xdebug zend extension usr lib php5 20090626 xdebug so php v PHP 5 5 6 1 debphp org p
  • Docker 容器未开始给出“OCI 运行时创建失败”

    我已经安装了Docker版本 https docs docker com release notes 17 12 0 ce 构建 c97c6d6当我尝试启动任何容器时 出现以下错误 docker 来自守护进程的错误响应 OCI运行时创建失败
  • 在像素着色器中计算世界空间坐标

    我有一个像素着色器 我想根据我的世界空间坐标计算每个像素的位置 我该怎么做 我需要什么 我有一个ps input具有 float4 位置的结构 SV POSITION 我认为这很重要 但存储在里面的值似乎有点有趣 我似乎无法弄清楚它们有什么