如何在Opengl中裁剪网格的这一部分?

2023-12-02

I tried to clip mesh in openGl and i think that i have a problem with math. I have a cube enter image description here

例如,我需要剪辑该立方体的一半。所以我不明白如何计算这个裁剪平面。白线说明了这个剪裁平面应该是什么样子,它只是平行于立方体的一侧

我的剪报

#version 120

varying vec3 ourColor;
varying float clip_distance;
void main()
{
    if ( clip_distance < 0.0 )
        discard;
    gl_FragColor = vec4(ourColor, 1.0);
}
#version 120


attribute vec3 aPos;
attribute vec3 aColor;
varying vec3 ourColor;
uniform mat4 model;
uniform mat4 view;
uniform mat4 projection;


varying float clip_distance;
const vec4 clipPlane = vec4(1.0, 1.0, 1.0, -1.0);

void main()
{
    gl_Position = projection * view * model * vec4(aPos, 1.0);
    
    clip_distance = dot(gl_Position, clipPlane);
    ourColor = aColor;
}

那么,如何计算这个裁剪平面。我想了解如何计算立方体每个边的裁剪平面


假设您的输入顶点描述 (0,0,0) -> (1,1,1) 立方体,您可以使用顶点着色器顶部的一行来解决此问题:

aPos = clamp(aPos, vec3(clipMinX, clipMinY, clipMinZ),
                   vec3(clipMaxX, clipMaxY, clipMaxZ));

哪里的clip{Min,Max}*变量是裁剪立方体的轴对齐距离。

例如,aPos = clamp(aPos, vec3(0,0,0), vec3(1,0.5,1))将切割立方体的上半部分。

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

如何在Opengl中裁剪网格的这一部分? 的相关文章

  • 线性/非线性纹理映射扭曲的四边形

    In my 上一个问题 https stackoverflow com questions 10832909 quad strip texturing distortion 已经确定 当对四边形进行纹理化时 面被分解为三角形 并且纹理坐标以
  • 我如何才能等待多个事情

    我正在使用 C 11 和 stl 线程编写一个线程安全队列 WaitAndPop 方法当前如下所示 我希望能够将一些内容传递给 WaitAndPop 来指示调用线程是否已被要求停止 如果 WaitAndPop 等待并返回队列的元素 则应返回
  • “构建”构建我的项目,“构建解决方案”则不构建

    我刚刚开始使用VS2010 我有一个较大的解决方案 已从 VS2008 成功迁移 我已将一个名为 Test 的控制台应用程序项目添加到解决方案中 选择构建 gt 构建解决方案不编译新项目 选择构建 gt 构建测试确实构建了项目 在失败的情况
  • 动态加载程序集的应用程序配置

    我正在尝试将模块动态加载到我的应用程序中 但我想为每个模块指定单独的 app config 文件 假设我的主应用程序有以下 app config 设置
  • Asp.NET WebApi 中类似文件名称的路由

    是否可以在 ASP NET Web API 路由配置中添加一条路由 以允许处理看起来有点像文件名的 URL 我尝试添加以下条目WebApiConfig Register 但这不起作用 使用 URIapi foo 0de7ebfa 3a55
  • 嵌套接口:将 IDictionary> 转换为 IDictionary>?

    我认为投射一个相当简单IDictionary
  • 类模板参数推导 - clang 和 gcc 不同

    下面的代码使用 gcc 编译 但不使用 clang 编译 https godbolt org z ttqGuL template
  • HTTPWebResponse 响应字符串被截断

    应用程序正在与 REST 服务通信 Fiddler 显示作为 Apps 响应传入的完整良好 XML 响应 该应用程序位于法属波利尼西亚 在新西兰也有一个相同的副本 因此主要嫌疑人似乎在编码 但我们已经检查过 但空手而归 查看流读取器的输出字
  • Clang 3.1 + libc++ 编译错误

    我已经构建并安装了 在前缀下 alt LLVM Clang trunk 2012 年 4 月 23 日 在 Ubuntu 12 04 上成功使用 GCC 4 6 然后使用此 Clang 构建的 libc 当我想使用它时我必须同时提供 lc
  • 不同枚举类型的范围和可转换性

    在什么条件下可以从一种枚举类型转换为另一种枚举类型 让我们考虑以下代码 include
  • 将 VSIX 功能添加到 C# 类库

    我有一个现有的单文件生成器 位于 C 类库中 如何将 VSIX 项目级功能添加到此项目 最终目标是编译我的类库项目并获得 VSIX 我实际上是在回答我自己的问题 这与Visual Studio 2017 中的单文件生成器更改 https s
  • 重载<<的返回值

    include
  • 显示UnityWebRequest的进度

    我正在尝试使用下载 assetbundle统一网络请求 https docs unity3d com ScriptReference Networking UnityWebRequest GetAssetBundle html并显示进度 根
  • 如何在整个 ASP .NET MVC 应用程序中需要授权

    我创建的应用程序中 除了启用登录的操作之外的每个操作都应该超出未登录用户的限制 我应该添加 Authorize 每个班级标题前的注释 像这儿 namespace WebApplication2 Controllers Authorize p
  • 控件的命名约定[重复]

    这个问题在这里已经有答案了 Microsoft 在其网站上提供了命名指南 here http msdn microsoft com en us library xzf533w0 VS 71 aspx 我还有 框架设计指南 一书 我找不到有关
  • 如何序列化/反序列化自定义数据集

    我有一个 winforms 应用程序 它使用强类型的自定义数据集来保存数据进行处理 它由数据库中的数据填充 我有一个用户控件 它接受任何自定义数据集并在数据网格中显示内容 这用于测试和调试 为了使控件可重用 我将自定义数据集视为普通的 Sy
  • Windows 和 Linux 上的线程

    我在互联网上看到过在 Windows 上使用 C 制作多线程应用程序的教程 以及在 Linux 上执行相同操作的其他教程 但不能同时用于两者 是否存在即使在 Linux 或 Windows 上编译也能工作的函数 您需要使用一个包含两者的实现
  • C++ 标准是否指定了编译器的 STL 实现细节?

    在写答案时this https stackoverflow com questions 30909296 can you put a pimpl class inside a vector我遇到了一个有趣的情况 这个问题演示了这样一种情况
  • 使用.NET技术录制屏幕视频[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有一种方法可以使用 NET 技术来录制屏幕 无论是桌面还是窗口 我的目标是免费的 我喜欢小型 低
  • 对来自流读取器的过滤数据执行小计

    编辑问题未得到解答 我有一个基于 1 个标准的过滤输出 前 3 个数字是 110 210 或 310 给出 3 个不同的组 从流阅读器控制台 问题已编辑 因为第一个答案是我给出的具体示例的字面解决方案 我使用的实际字符串长度为 450 个

随机推荐

  • 忽略与财产相关的警告

    我想忽略这些警告这些警告在我使用时出现有效架构 arm64 armv7 armv7s 这些类型的警告出现在许多标题中 我想忽略这些警告 就像 clang 处理已弃用的警告一样 pragma clang diagnostic push pra
  • 在 SQL 中检索列信息(复合键)

    我有一个大型 SQL 数据库 我需要验证表和列的结构 而不 是数据本身 因此 我需要生成所有表的列表 然后为每个表生成其所有列 然后为每列生成其数据类型 长度 精度 序号位置以及它是否是该表主键的一部分 我可以通过以下查询获得我需要的大部分
  • 将图像保存到文档目录并检索电子邮件附件

    我无法弄清楚NSBundle DocumentDirectory数据 我有一张相机图片 图像视图 我正在保存到NSDocumentDirectoy然后想要检索它以附加到电子邮件中 这里是保存代码 IBAction saveImage NSA
  • C++ 将方法指针作为模板参数传递

    我有一个这样的调用者函数 template
  • 如何在 CentOS 6 上安装 ffmpeg

    我已经尝试安装 ffmpeg 2 天了 但没有成功 我在 youtube 上尝试了无数视频 在 google 上一步步尝试 但没有成功 任何帮助都会很棒 我有一台 Centos 6 服务器 是的 我在 mac 终端中使用 root ssh
  • PHP 格式日期

    如何强制输出日期格式 2012年12月12日 2012年1月10日 2012年1月5日 代替 12 12 2012 01 10 2012 01 05 2012 我的代码如下 adatefrom date create POST datefr
  • apache 日志中的 wkhtmltopdf 错误

    exec wkhtmltopdf test html output pdf 在 php 命令行中它可以工作 但是如果我尝试从 apache 调用它 它不会创建 pdf 文件并且日志显示 tail f var log apache2 erro
  • 标记上的语法错误、lambda 表达式的构造错误

    我在用于线程的以下代码中遇到了语法问题 btnNewButton addActionListener new ActionListener public void actionPerformed ActionEvent e new Thre
  • 友谊和继承有什么区别?

    假设有两个类A和B class A class B 下面的两个例子在哪些方面有所不同 示例1 class C public A public B 示例2 class C private friend class A friend class
  • 如何使用 pandas.Series.str.contains 搜索字符加上

    如何在 pandas 数据框列中使用 pandas Series str contains 搜索字符 我试过 df noplus df df column1 str contains case False 它给了我一个错误 File hom
  • 如何使用 python 为 ds:DigestValue、ds:SignatureValue 和 ds:X509Certificate 生成 Base64 哈希值?

    我需要生成并签署 XML 我使用的是 Windows 10 我有 PFX 格式的证书 也称为 P12 我已成功从该文件中提取密钥和证书 以便对 XML 进行签名 但现在我需要知道如何签署该 XML 更准确地说 如何生成此 XMl 元素的内容
  • JBoss AS 7:如何独立部署EJB和依赖WAR?

    我有一个带有一个 EJB 的应用程序 mwf ejb jar 和战争 mwf web war 如果我将它们打包在同一个 EAR 中 则一切正常 有没有办法先部署EJB 然后部署WAR 如果我尝试一下 我的 EJB JAR 部署得很好 但是当
  • 根据第一个和最后一个逗号分割字符串

    我想在第一个和最后一个逗号上分割字符串 每个字符串至少有两个 逗号 以下是示例数据集和所需的结果 这里有一个类似的问题询问如何在第一个逗号上拆分 在字符串中的第一个逗号处拆分 这里我问如何在前两个冒号上分割字符串 在前两个冒号上分割字符串
  • 错误 您的帐户已具有有效的 iOS 分发证书

    我见过其他存在此类错误的问题 但没有一个问题可以帮助我解决我的问题 我有我的个人苹果开发者帐户和我工作的公司的一个帐户 当我尝试为我的公司提交应用程序以对其进行 Beta 测试时 出现错误 您的帐户已经拥有有效的 iOS 分发证书 我尝试再
  • java手机通用签名工具

    谁能告诉我几乎所有java移动供应商 如三星 索尼 诺基亚 Micromax Moto等 使用的常用签名工具是什么 AFAIK Thawte Verisign and Java验证支持大多数设备 但一切都是成本 有一次我为此与 Thawte
  • Python + Django 页面重定向

    如何完成简单的重定向 例如cflocation在 ColdFusion 中 或header location http 对于 PHP 在 Django 中 这很简单 from django http import HttpResponseR
  • 寻找最佳报价组合的算法,该组合可以为给定的一组商品提供最大折扣

    我有带有 ID 的物品 1001 1002 1003 1004 1005 1006 There respective quantities are 2 5 1 1 5 2 现在我有如下数据 每行都有一个 OfferId offerId It
  • PHP 中如何将日期转换为时间戳?

    我如何从例如获取时间戳22 09 2008 此方法适用于bothWindows 和 Unixand is 时区意识到 如果你和你一起工作 这可能就是你想要的dates 如果您不关心时区 或者想使用服务器使用的时区 d DateTime cr
  • 如何使用 bookshelf-pagemaker 添加简单的Where子句

    使用书架页面制作器NodeJS 模块 https www npmjs com package bookshelf pagemaker https github com bhoriuchi bookshelf pagemaker 我能够获得基
  • 如何在Opengl中裁剪网格的这一部分?

    I tried to clip mesh in openGl and i think that i have a problem with math I have a cube 例如 我需要剪辑该立方体的一半 所以我不明白如何计算这个裁剪平