如何在 OpenGL (ES) 中正确渲染重合多边形

2023-11-27

据我了解,通过在 OpenGL ES 中设置深度函数,可以控制重叠几何图形在 3D 场景中的渲染方式。我用gl.depthFunc(gl.LEQUAL)(webgl)在我的代码中。

然而,当两组多边形重合且颜色不同时,生成的表面将是两种颜色的任意混合图案(随着相机位置的变化而变化,从而导致闪烁)。看看这张图片:

enter image description here

我怎样才能解决这个问题?我尝试了不同的 heightFunc 值,但没有一个能解决这个问题。我希望重合的多边形具有单色,无论是哪种颜色。


这就是所谓的深度战斗,并且与以相同深度渲染的两个对象有关,但舍入误差(和深度缓冲区精度)偶尔会将一个对象弹出到另一个对象前面。一种可用的解决方案是使用 glPolygonOffset 函数:

http://www.khronos.org/opengles/sdk/docs/man/xhtml/glPolygonOffset.xml

您可以在本页底部看到它的使用示例:

http://www.glprogramming.com/red/chapter06.html

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

如何在 OpenGL (ES) 中正确渲染重合多边形 的相关文章

  • 渲染脚本渲染在Android上比OpenGL渲染慢很多

    背景 我想根据Android相机应用程序的代码添加实时滤镜 但Android相机应用程序的架构是基于OpenGL ES 1 x 我需要使用着色器来自定义我们的过滤器实现 然而 将相机应用程序更新到OpenGL ES 2 0太困难了 然后我必
  • 有没有任何工具可以将 PVR 纹理分割成一组图块?

    我有一张大的 png 纹理 4096x4096 我需要将其部分加载到内存中 我已经将大 png 纹理分割成 16 个 1024x1024 块 然后将它们转换为 PVR 压缩文件 问题是 当我绘制这些图块时 图块之间的边缘与 png 的边缘不
  • 解决 Three.js / webGL 中的 gl_PointSize 限制

    我正在使用 Three js 创建交互式数据可视化 此可视化涉及渲染 68000 个节点 其中每个不同的节点具有不同的大小和颜色 最初我尝试通过渲染网格来实现此目的 但事实证明这非常昂贵 我当前的尝试是使用 Three js 粒子系统 每个
  • 使用文件 API 将资源加载到 Three.js 中

    我想创建导入 3D 模型以在浏览器中查看的功能 方法是使用File API http www html5rocks com en tutorials file dndfiles Three js 加载器在我托管的文件上运行良好 我的理解是加
  • 优化重叠矩形的绘制

    我有很多矩形 有些与其他矩形重叠 每个矩形都有一个绝对 z 顺序和一个colour 每个 矩形 实际上是粒子效果 网格或纹理的轴对齐边界框 并且可能是半透明的 但只要您不尝试剔除其他矩形后面的矩形 就更容易抽象地思考彩色矩形 所以我将在问题
  • Android 中的 OpenGL 缩小

    我正在使用 3D 对象并渲染它并通过扩展 GLSurfaceView 实现渲染器来显示它 问题是如何通过捏合和捏合进行缩小 下面是我的班级 package com example objLoader import java nio Byte
  • 在 Ubuntu 中找不到 X11/Xlib.h

    我试图在 Linux 上使用 open gl 编写一个相当简单的程序 但在编译时它说 编译拇指 egl 我对 GL 完全陌生 不知道出了什么问题 快速搜索使用 apt search Xlib h 打开 libx11 dev 包 但纯 Ope
  • 为什么在 iPhone 应用程序中调用 glMatrixMode(GL_PROJECTION) 会给我 EXC_BAD_ACCESS ?

    我有一个 iPhone 应用程序 我在应用程序 DidFinishLaunching 中调用这三个函数 glMatrixMode GL PROJECTION glOrthof 0 rect size width 0 rect size he
  • WebGL 如何设置深度缓冲区中的值?

    在 OpenGL 中 深度缓冲区值是根据场景的近剪裁平面和远剪裁平面计算的 参考 从深度缓冲区获取真实的 z 值 https stackoverflow com questions 6652253 getting the true z va
  • 在没有 SurfaceView 的 Android 上获取 GPU 信息

    在Android上 有没有一种方法可以在不创建SurfaceView的情况下获取GPU信息 我不想使用 OpenGL 绘制任何内容 但我只需要获取硬件信息 例如供应商 OpenGL ES 版本 可用扩展等 抱歉 我不知道如何在 Androi
  • 如何获取特定 GLSurfaceView 的 EGL 显示/上下文

    这是后续我原来的问题 https stackoverflow com questions 6509588 egl vs gles 2 0 on android e g java 这可能太宽泛 而这个可能太具体 但也许我可以应用牛顿法 我的具
  • Android 7 GraphicBuffer 替代方案,用于直接访问 OpenGL 纹理内存

    从移动设备具有 CPU 和 GPU 共享内存这一事实中获利的唯一方法是使用GrphicBuffer 但由于 Android 7 限制对私有本机库 包括 gralloc 的访问 因此无法再使用它 问题 是否有其他方法可以直接内存访问纹理的像素
  • 如何在 Three.js 中重新调整三角形面的方向

    用更好的例子进行编辑 我使用 Three js 来显示 MRI 胃图像的外壳 外壳是从 vtk 格式的外部文件加载的 这是一个演示 http www menne biomed de uni 3d alphahull html http ww
  • 在我的 iPhone 应用程序中使用视频作为启动画面是个好主意吗?

    我即将完成一个应用程序 现在我想在应用程序完成加载和启动后添加带有我公司徽标的动画启动屏幕 我可以为此使用 openGL 动画 但我想知道使用视频是否会更好 这对我和艺术家来说更容易 因为他只会提供一个小视频 我将在我的应用程序完成后重现该
  • OpenGL ES 2.0 中的透明对象

    所以我一直在 Android 上使用 OpenGL ES 2 0 但现在遇到了一个我无法解决的问题 提前道歉 看来我还不能发布两个以上的链接 所以我把我的三张图片放在 Photobucket 相册中 我正在尝试创建一个由透明区域 彩色玻璃
  • iPhone OpenGL ES 工具中的 Tiler Utilization 统计数据意味着什么?

    我一直在尝试执行一些 OpenGL ES 性能优化 以提高 iPhone 应用程序中每秒渲染的三角形数量 但我遇到了困难 我尝试将 OpenGL ES 数据类型从固定点转换为浮点 每苹果的推荐 http developer apple co
  • 纹理采样:根据LOD值计算BIAS值

    GL ES 2 0 中的功能纹理2DLod在片段着色器中不可用 我需要移植 GLSL 着色器 在 GL ES 2 0 中我只能使用二维纹理 sampler2D 采样器 vec2 坐标 浮点数bias 告诉我如何计算 a 的值bias相当于已
  • 如何检查 webgl(two.js) 的客户端性能

    我有一个使用 Three JS 的图形项目 现在我想自动检查客户端 GPU 性能并计算可以在应用程序中加载多少元素 我想到了诸如 GPU 基准测试之类的东西 看一眼stats js https github com mrdoob stats
  • 使用 OpenGL ES 绘制地球仪

    我正在尝试渲染一个地球仪 上面有地图的球体 OpenGL ES 1 1 on iOS 我能够绘制球体并绘制边界 但有一个问题 在我看来 不面向前方的线条也被绘制在屏幕上 像这样 在图片中 您可以看到美国渲染得很好 但您可以看到澳大利亚渲染在
  • iOS OpenGL ES 2.0:离屏渲染并将结果保存到 UIImage

    我正在使用 OpenGL ES 渲染一些特殊效果 我不想向用户显示这些效果 我只想将结果保存为 UIImage 有人可以帮助我吗 这是我正在使用的代码 我可以获得一个包含我使用的红色透明颜色的图像 但没有显示几何图形 import Rend

随机推荐

  • 用于检测数据集中太大而无法完全加载到内存中的重复项的算法

    这个问题有最优解吗 描述一种在包含一百万个电话号码的文件中查找重复项的算法 该算法在运行时只有两兆字节的可用内存 这意味着您无法一次将所有电话号码加载到内存中 我的 天真的 解决方案是一个 O n 2 解决方案 它迭代这些值并只加载文件块而
  • 将 log4j.properties 转换为 log4j.xml 的脚本

    我需要使用自定义过滤器 因此我需要将一些长 log4j properties 文件转换为 log4j xml 有人知道有一种工具可以做到这一点 或者愿意贡献一个他们使用过的工具吗 到目前为止 搜索还没有找到这样的工具 我也需要这样做 但找不
  • 使用 AAR 和源 JAR 将 Android 库发布到 Maven

    有人可以给我一个关于如何使用的提示吗maven publishGradle 插件发布com android library带有 AAR 和源 jar 的项目 模块 我可以用旧的来做到这一点maven插件 但我想使用新的maven publi
  • 有没有办法获取某个类型的成员以及所有后续的基本类型?

    我有一个 I类型符号 目的 如果我打电话获取会员 它给我当前类型的成员 而不是基类 我知道我可以使用 BaseType 属性来挖掘它 并使用一些迭代代码来获取所有属性 有没有更简单的方法来获取所有成员 无论继承层次结构的级别如何 如果您正在
  • 如何在 Jupyter Notebook 中将“Completer.use_jedi”永久配置为“False”

    每次有新的Jupyter笔记本实例打开后 需要 config Completer use jedi False在自动完成功能开始工作之前运行命令 每次都要配置 好累use jedi to False在编码之前 请建议是否有永久修复以在 ju
  • having 子句出错

    select SUM Bill from ProductSaleReport group by PCI having MONTH Date between 1 and 3 请问有谁可以吗 帮我找到问题 我收到错误 消息 8121 16 级
  • PerformanceCounterCategory.GetCategories() 抛出异常 ArgumentException - 参数“categoryName”的值“无效”

    当我尝试运行此代码时 var categories System Diagnostics PerformanceCounterCategory GetCategories 我收到 ArgumentException 异常 我已经尝试过以下方
  • 如何首先使用实体​​框架5模型生成每个层次结构的表

    我首先使用 Visual Studio 2012 和实体框架 5 模型 我想使用每个层次结构一个表策略生成数据库 但找不到该选项 Entity Designer Database Generation Power Pack 不适用于 Vis
  • 将输入转换为大写的 Uppercase 属性

    我正在 MVC4 中工作 想要使用Uppercase属性 这个想法是 Uppercase 属性的存在将导致模型值在到达服务器时转换为大写 目前我的模型中有以下代码 Required Display Name Account Code Str
  • 拖/放时可以使用鼠标滚轮吗?

    在 WinForms 中 调用DoDragDrop要开始拖动项目 控件不再使用鼠标滚轮滚动 并且控件的MouseWheel事件不再被调用 直到用户放下他正在拖动的任何东西 有没有办法让鼠标滚轮在拖动时工作 你可以获得全球MouseWheel
  • 如何部署 Angular 应用程序?

    一旦 Angular 应用程序进入生产阶段 如何部署它们 到目前为止我见过的所有指南 甚至在角 io 依靠 lite server 提供服务并通过 browserSync 来反映更改 但是当您完成开发后 如何发布应用程序 我是否导入所有编译
  • 如何在运行时向用户请求提升权限?

    某些以普通用户启动的应用程序会在必要时请求提升权限 例如文件管理器需要写入此类文件夹 然后继续操作 我怎样才能复制这种行为 正如 Tam s 指出的那样 您需要启动一个具有更高权利的新流程 我过去进行了很多搜索 但没有找到任何方法来提升当前
  • ASP.Net Core 2.0 - 如何从中间件返回自定义 json 或 xml 响应?

    在 ASP Net Core 2 0 中 我尝试返回带有状态代码的 json 或 xml 格式的消息 我从控制器返回自定义消息没有问题 但我不知道如何在中间件中处理它 到目前为止 我的中间件类看起来像这样 public class Head
  • .net 随机生成器是如何实现的?

    我的意思是 net c 中的标准 随机生成器 Random random new Random seed random next 我知道文献中有数十或数百种方法 但我无法找出 net框架目前使用的是哪一种 提问的原因 如果我抽取很多随机变量
  • 当类路径没有设置为jdk路径时,java编译器如何找到类文件?

    我正在尝试深入了解 java 编译 所以我收起 IDE 并开始使用 MS DOS 命令行 我创建了一个简单的项目 如下面的树中所述 示例应用程序 src pack Sample java classes 这是 Sample java 源代码
  • 如何默认选择单选按钮 - asp.net mvc 强类型 html 帮助程序

    我有一个像这样的单选按钮列表 我希望默认选择此按钮 我该怎么做呢 或者在呈现此视图的控制器操作中 model Gender Male return View model
  • HBase 扫描性能

    我正在执行范围扫描 这给了我 500k 记录 如果我设置scan setCaching 100000 花费了不到一秒钟的时间 但是如果scan setCaching 100000 未设置花了近 38 秒 如果我设置scan setBlock
  • Android VideoView无法播放视频mp4

    我使用 Android VideoView 通过 HTTP 播放视频文件 我的问题是我的手机提示 无法播放视频 抱歉 该视频无法播放 从 HTTP 播放 mp4 文件时 但是播放其他mp4视频文件就可以了 当在较新的手机 如三星 Galax
  • 抑制 Roslyn 代码分析器的问题

    有什么方法可以抑制 Roslyn 分析仪的问题吗 我使用即时分析器项目类型 如果用户想要的话 我想抑制这些问题 而且它必须是永久的 如果我重新打开 Visual Studio 仍必须应用相同的抑制规则 您可以采用与忽略普通 C 编译器警告完
  • 如何在 OpenGL (ES) 中正确渲染重合多边形

    据我了解 通过在 OpenGL ES 中设置深度函数 可以控制重叠几何图形在 3D 场景中的渲染方式 我用gl depthFunc gl LEQUAL webgl 在我的代码中 然而 当两组多边形重合且颜色不同时 生成的表面将是两种颜色的任