glsl 和不同值的透视校正

2023-12-27

光栅化器是否使用透视校正对每个变化的顶点值(或在较新版本的 glsl 值中“走出”顶点着色器)进行插值?这取决于硬件吗?

当发生裁剪时,裁剪顶点的值是如何计算的?

我尝试撤消透视校正,并注意到被剪切的多边形的奇怪行为,我想更好地了解幕后发生的事情。


在 GL 3.0 之前,影响透视正确插值的唯一方法是使用提示。一般来说,glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST)将激活所有变化的透视正确插值,同时glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST)一般都会将其关闭。请注意,这些只是驱动程序提示,仅此而已;司机不have以这种方式做出反应。

在 GLSL 1.30+ (OpenGL 3.0+) 中,您可以强制每个输出/输入以特定方式进行插值。这插值限定符 http://www.opengl.org/wiki/GLSL_Type_Qualifiers#Interpolation_qualifiers smooth意味着透视正确;如果您不指定限定符,则这是默认值。noperspective意思是……显而易见的。

剪切总是以这样的方式完成,即它的工作方式就像没有剪切一样(或者在硬件精度内足够接近)。因此,如果对某个值进行透视正确插值,则为剪裁顶点生成的值也必须使用透视正确插值。

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

glsl 和不同值的透视校正 的相关文章

  • 如何用PHP进行有向图绘制?

    我正在寻找一种在 PHP 中绘制有向图的方法 如http upload wikimedia org wikipedia commons 0 08 Directed acirclic graph png http upload wikimed
  • 线性问题和非线性问题之间的区别?点积和核技巧的本质

    核技巧将非线性问题映射为线性问题 我的问题是 1 线性问题和非线性问题的主要区别是什么 这两类问题的差异背后的直觉是什么 核技巧如何帮助在非线性问题上使用线性分类器 2 为什么点积在这两种情况下如此重要 Thanks 当人们说到分类问题的线
  • 如何使用 ggplot2 对曲线下的区域进行着色

    我一直在尝试使用 ggplot2 生成类似于此 R 图形的绘图 xv lt seq 0 4 0 01 yv lt dnorm xv 2 0 5 plot xv yv type l polygon c xv xv lt 1 5 1 5 c y
  • OpenGL中背景对象绘制在前景对象前面?

    为了测试目的 我们假设我画了 2 个茶壶glutSolidTeapot 像这样 glColor3f 1 0f 0 0f 0 0f Red teapot glutWireTeapot 1 0f glColor3f 0 0f 1 0f 0 0f
  • 渲染具有透明度的纹理时,OpenGL 不需要的像素

    我已经为这个问题苦苦挣扎了一段时间了 当我使用 OpenGL 渲染 2D 纹理 在无透明度和部分透明度之间的过渡上具有透明度值 时 我得到了一些烦人的灰色像素 我认为这是像素值插值的产物 关于如何改进这一点有什么想法吗 I m attach
  • ValueError:数学域错误,不断弹出

    我时常收到此消息 我尝试了所有的变化 改变我使用 sqrt 的方式 一步一步地做 等等 但这个错误仍然不断出现 这可能是一个菜鸟错误 我没有注意到 因为我是 python 和 ubuntu 的新手 这是我的源代码 一个非常简单的程序 To
  • 如何计算正切和副法线?

    谈谈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 世界空间中点光源的位置 例如
  • 帮我用光线追踪器解决这个错误

    我不会针对这个问题发布任何代码 因为它需要太多的上下文 但我将从概念上解释我正在做什么 我正在构建一个使用仿射变换的简单光线追踪器 我的意思是 我将来自相机坐标的所有光线与通用形状相交 这些形状都具有关联的仿射变换 并且光线在与场景对象相交
  • 在 OpenGL 中渲染纹理 1 到 1

    所以我想做的是使用 OpenGL 和 C 将纹理渲染到平面上 作为显示图像的一种方式 但是我需要确保在渲染纹理时没有对纹理进行任何处理 抗锯齿 插值 平滑 模糊等 这是 OpenGL 处理渲染纹理的默认方式吗 或者是否需要设置一些标志才能禁
  • 使用浏览器内的 JS 数值求解三角方程[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 给定变量值s v and h 并给定一个库 例如数字 js http www numericjs com index php我怎样才能用数
  • 在 3d 空间中的两个平面之间进行插值

    我正在开发一种工具 可以让您在 3D 体积 上圈出 包围事物 我想通过标记 切片 1 和 3 并从该信息 填充 切片 2 来节省时间 两个简单的解决方案是 1 slice2 slice1 AND slice3 gets the overla
  • 为什么我的 CAOpenGLLayer 更新速度比之前的 NSOpenGLView 慢?

    我有一个在 Mac OS X 上渲染 OpenGL 内容的应用程序 最初它渲染到 NSOpenGLView 然后我将其更改为渲染到 CAOpenGLLayer 子类 当我这样做时 我看到了巨大的性能损失 帧速率减半 鼠标响应能力降低 卡顿
  • 如何从一堆图像生成视频?

    谁能告诉我从一堆图像 位图 生成视频的方法 可能是开放格式的avi文件或开源库 我使用了 Splicer 但它在生产使用中存在一些错误 字节数图像转视频 SDK http bytescout com products developer i
  • OpenGL - 自动生成 glDrawArrays 的索引/步幅参数

    我正在渲染一个包含大量数据点 gt 1M 的网格结构 我的数据结构如图所示 所以我的索引缓冲区的内容看起来像这样0 100 1 101 2 102 3 103 我对索引缓冲区的巨大尺寸有点恼火 我需要它来定义我的三角形带 是否有可能告诉 O
  • 如何计算具有较大中间值的总和

    我想计算 for n m两个值都是 1000 以内的整数 最终结果是一个不大于 1000 的数字n但中间值对于 python 来说太大了 无法处理 你怎么解决这个问题 我将函数定义如下 from scipy misc import comb
  • 实例着色器矩阵的设置

    我想绘制实例立方体 我可以打电话GL DrawArraysInstanced PrimitiveType Triangles 0 36 2 成功地 我的问题是所有立方体都绘制在相同的位置和相同的旋转 我如何为每个立方体单独更改它 要创建不同
  • 如何在opengl中使用四元数绕屏幕中心旋转?

    我正在尝试实现轨迹球 轨迹球旋转 但我的中心有问题 回转 无论如何 我希望中心成为屏幕的中心 让我解释一下到目前为止我所做的事情 我创建了一个四元数 旋转轴 向量起点x向量结束 角度 向量起点 向量结束 从该四元数中 我创建了一个旋转矩阵
  • 如何在多采样纹理上渲染帧缓冲区对象?

    我目前有一个使用多个通道的渲染引擎 其中图像的各个部分在纹理上渲染 然后使用着色器进行组合 它有效 现在我想激活多重采样 我在这里读到 http www opengl org wiki Framebuffer Object Examples
  • 限制纬度和经度值的模数

    我有代表纬度和经度的双精度数 我可以轻松地将经度限制为 180 0 180 0 具有以下功能 double limitLon double lon return fmod lon 180 0 360 0 180 0 这是有效的 因为一端是排
  • 如何在OpenGL中像这样绘制连接的带状线

    我想用以下方式绘制一系列连接线 GL LINE STRIP 我尝试过自己编写代码 但没有得到想要的结果 所以我来到这里 帮助我找出我错在哪里 这里我只给出我的draw 函数 glBegin GL LINE STRIP glVertex2f

随机推荐

  • YAML 多行换行,不带空格

    我试图理解这里的规范 但它们实际上很难理解 http www yaml org spec 1 2 spec html id2779048 http www yaml org spec 1 2 spec html id2779048 据我所知
  • 在插件存储库中找不到插件 - 当我的公司 Nexus 宕机时如何解决问题?

    我正在尝试建立Hadoop本地和当我这样做时 mvn U clean install Pdist Dtar Ptest patch 如上所述 http wiki apache org hadoop HowToSetupYourDevelop
  • Mac OSX Java 终端版本不正确

    好吧 我对 Mac 和 OSX 有点陌生 但我选择了一台 这样我就可以用一台对我的 Java 程序进行一些故障排除 因为我工作的公司使用 OSX 和 Windows 机器的组合 我遇到的问题是 当我从 Oracle 网站安装 Java 7
  • Servlet 过滤器“代理”仅作用于来自远程端点的响应

    我需要将某些 HTTP 请求重定向到 Spring Boot Web 应用程序 服务 但在请求端 Spring 应用程序不执行任何操作 而是充当 HTTP 客户端 另一个服务 和请求的 true 之间的传递目的地 但是 当响应返回到 Spr
  • 无法在表视图单元格内滚动集合视图

    我看过类似的问题 但我仍然不确定到底发生了什么 我觉得这可能是缺少一些简单的东西 所以如果是这样 我提前道歉 我在表视图单元格内的集合视图是不滚动 and 没有响应 didSelectItemAt方法 该项目编译正确 看起来与测试所需的完全
  • GeoDjango:如何获得两点之间的距离?

    My Profile模型有这个字段 location models PointField geography True dim 2 srid 4326 我想计算两者之间的距离locations 考虑到地球是一个球体 使用GeoDjango
  • Git 推送权限被拒绝(公钥)但已成功通过身份验证

    我想用 ssh 将我的提交推送到 github 我明白了 您已成功通过身份验证 运行后消息ssh T email protected cdn cgi l email protection命令 但是当我想推送我的提交时 我收到此错误 权限被拒
  • Facebook 移动广告应用程序安装未显示在活动报告中

    我已经成功实现了 Facebook SDK 和 AppEvents 来报告我的 Android 应用程序的安装 我已经验证它在仪表板中注册了最后的安装数据 并且我在 Facebook 的 应用程序事件 选项卡中看到了数千个 fb mobil
  • 更新 SQL Server 中的 SID

    我的用户已从 Active Directory 中删除并重新创建 当运行select suser sid 我注意到它显示旧的 SID 有没有办法将其更新为我的新 SID 我是 SQL Server 的 DBA 管理员 你不能ALTER的 S
  • 如何在fragment中设置ContentView?

    现在我有了这个片段 我想将其与 setContentView 一起使用 但到目前为止我找不到如何使用 您可以在下面的代码中看到我的情况 我不想膨胀布局 我尝试将它与名为 SampleView 的视图一起使用 那么我该怎么做呢 public
  • 使用 Microsoft Visual C# 2010 Express 加载 DLL

    我使用 Microsoft C 2010 Express 和 Imperx 的 FrameLink Express 驱动程序 当我尝试在运行时加载 DLL 时 出现异常 无法加载 DLL VCECLB dll 无法加载指定的模块 成立 HR
  • 跨页面发布。在 Asp.net 中使用上一页是一个好习惯吗?

    我在 MSDN 上发现这篇文章谈论跨页面发帖 http msdn microsoft com en us library ms178139 aspx 我从未使用过 Page PreviousPage 但我认为这很有趣 你用它吗 这是一个好的
  • 在 monodroid 或 monotouch 中,我应该使用什么来代替 app.config 作为配置字符串?

    我想在 monodroid 项目中存储开发与生产连接字符串和配置字符串 我通常会将其作为应用程序设置存储在 web config 或 app config 中 但是在 monodroid 和 monotouch 项目中应该如何执行呢 我还希
  • 在从 Enum 填充的 ListPicker 中使用本地化字符串

    我正在填充一个ListPicker从一个Enum 例如 如果我有以下枚举 public enum Pets Dog Cat Platypus 我通过以下方式填充 ListPicker PetListPicker ItemsSource En
  • Ruby 元编程:无法将方法发送到模块

    例如 我有以下自定义类和模块 module SimpleModule def hello world puts i am a SimpleModule method end def self class hello world puts i
  • 导航栏显示在底部

    正如您从我添加的图片中看到的 我的导航栏显示在屏幕底部的表格视图下 我刚刚将导航栏拖放到该视图控制器上 这意味着我没有使用导航控制器 我不明白为什么会发生这种情况 我确信这是一个我所缺少的简单修复 图 2 是故事板视图 图 3 应用程序运行
  • Google Play 警告 Google Play 应用内结算实施不正确

    我刚刚收到来自 Google Play 的以下电子邮件 您好 Google Play 开发者 我们检测到您在此电子邮件末尾列出的应用程序是 不设置目标套餐调用应用内付费服务 为了意图 这可以使恶意包绕过 Play 商店计费系统并访问尚未购买
  • 给定一个未知长度的列表,通过仅扫描 1 次来返回其中的随机项

    给定一个未知长度的列表 通过仅扫描 1 次来返回其中的随机项 我的想法 类似的算法是储层采样 由其他人发布 但是 它太复杂了 因为它需要运行 rand 并在每次迭代中保留 k 个节点 有更好的解决方案吗 O n 时间和 O 1 空间 你为什
  • 使用Apple新的AudioEngine改变AudioPlayer声音的Pitch

    我目前正在尝试让 Apple 的新音频引擎与我当前的音频设置配合使用 具体来说 我正在尝试使用音频引擎改变音调 这显然是可能的这个帖子 https stackoverflow com questions 25333140 swift usi
  • glsl 和不同值的透视校正

    光栅化器是否使用透视校正对每个变化的顶点值 或在较新版本的 glsl 值中 走出 顶点着色器 进行插值 这取决于硬件吗 当发生裁剪时 裁剪顶点的值是如何计算的 我尝试撤消透视校正 并注意到被剪切的多边形的奇怪行为 我想更好地了解幕后发生的事