问题标签 [tessellation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1152 浏览

arcpy - 镶嵌蟒蛇

我对 python 世界相当陌生,这是我自己编写的第一个脚本,但我正在寻求一些帮助。

除了需要整理的脚本外,我还遇到了使用 arcpy 的地理处理工具的问题。我想基于点数据集群创建镶嵌,最终在镶嵌中,点数少于 50。我创建了一个可以运行的脚本,但是,我正在尝试为生成镶嵌工具自动化区域单元,但它似乎挂断了。我最终杀死了脚本。

更新以添加新代码:

因此,新代码应该创建一个六边形镶嵌,使用 pnts 文件连接,如果连接计数 > 50,则创建六边形镶嵌,每个六边形钻取到 50 个 pnt。这是我第一次尝试使用 python 函数并首先跳脚。第一个主要错误是无效的域范围,但我对这到底意味着什么以及要求什么有疑问。

我知道它是我相信的代码的最后一行。

这是我的错误: Traceback(最近一次通话最后一次):文件“D:/Ed_Stuff/Testing/Def_Tess_Test.py”,第 50 行,在 create_hex(pnts,out_fc)文件“D:/Ed_Stuff/Testing/Def_Tess_Test.py”中,第 17 行,在 create_hex ap.GenerateTessellation_management(out_fc, Ext, "Hexagon", area, SR) 文件“C:\Program Files (x86)\ArcGIS\Desktop10.4\ArcPy\arcpy\management.py”中,第 15539 ​​行,在 GenerateTessellation 中引发 e ExecuteError: ERROR 000375: Invalid range domain。执行失败 (GenerateTessellation)。

0 投票
1 回答
285 浏览

opengl - OpenGL TES,输出中可能有邻接信息吗?

我想知道曲面细分评估着色器(TES)是否可以以某种方式输出邻接信息,然后可以由几何着色器(GS)使用。

让我们以 TCS/TES 组合为例,使用layout (isolines, equal_spacing, ccw) in. 随后layout (lines) in在 GS 作品中使用,但layout (lines_adjacency) in没有。我知道在不存在 TCS/TES 的情况下必须明确提供邻接信息(例如,使用更新的索引列表并glDrawElements使用GL_LINES_ADJACENCY),但是有没有办法让 TES 生成此信息?阅读本节似乎无法自动生成这些信息——希望我忽略了一些东西。

我想到的应用程序是绘制粗平滑曲线,即首先生成大量顶点并使用细分将它们与线段连接,然后用三角形条替换这些线段,如解释here

之前在这里问过一个非常相似的问题,到目前为止还没有确凿的答案。

0 投票
1 回答
222 浏览

macos - Mac上的Opengl镶嵌错误

我正在mac上尝试镶嵌着色器,但它返回错误列表:

这似乎是曲面细分控制器着色器有问题。

我的 opengl 项目在我的 2010 Windows 电脑上运行良好......我想知道这是否是 macosx 问题?我 Mac 上的 GPU 是 Intel Iris。任何人都对此有所了解...

main.cpp 代码在这里共享

0 投票
2 回答
700 浏览

c++ - 用于高度图的凹多边形的近均匀镶嵌

我得到了一个不能有孔的凹多边形的轮廓/边界,我需要对其应用高度图。为此,我需要像这样对多边形进行近乎均匀的细分:

.

如何执行此细分?理想情况下,该解决方案可以参数化内部顶点的“分辨率”以调整细分的细节。

我正在使用 OpenSceneGraph,所以如果使用它的内置曲面细分库以某种方式可能的话,那将是理想的,但我愿意在必要时引入一个额外的(希望是轻量级的)依赖项。

0 投票
1 回答
954 浏览

opengl - 通过着色器传递数据

使用顶点时,如何通过着色器传递数据,苔丝。控制,苔丝。评估、几何和片段着色器。我试过以这种方式使用接口块。

比我在镶嵌控制着色器中编写的代码:

因此,镶嵌控制着色器为每个顶点调用一次。这是否意味着 tc_in 必须不是数组而是单个变量。由于偷偷摸摸的 gl_InvocationID,我不太确定。

然后事情变得艰难。细分评估着色器。有些东西告诉我评估着色器应该将接口块作为数组。

移动到几何着色器。几何着色器需要多个顶点,因此,绝对是数组接口块。

对我来说似乎是合法的,但数据没有进入片段着色器。

我会很感激任何建议。

0 投票
1 回答
331 浏览

opengl - 根据 OpenGL/DirectX 中的道路轮廓进行地形变形

我计划根据道路剖面使用 OSG(Openscenegraph)进行地形变形。道路网格已单独生成,我将其放在地形上。OSG 生成的地形必须根据道路轮廓自行变形。此外,必须将额外的几何图形添加到靠近道路边界的地形几何图形中,以实现平滑,因为地形四边形图块单元可能太大。

我试图想象这种情况,如下图所示。现在我看到的最好的方法是让 OSG 将地形图块生成为 OSGB 文件。我知道道路边界点。我可以算出一段路段会落在哪个地形上。假设我根据此图知道特定地形四边形图块的道路边界点:

地形顶视图

现在我需要对落在道路路径上的地形瓦片单元进行镶嵌或细分。

因此我需要变形以及增加道路边界的地形网格。问题:实现这一目标的最佳方法应该是什么?

  • 我可能会使用镶嵌着色器方法,但它可能会在我移动相机的任何地方进行镶嵌,而不是专门在道路边界处。也许创建一个灰度纹理运行时突出显示路面并将其传递给 Tess 着色器以在道路边界进行镶嵌?
  • 我可能会使用带有缠绕顺序的旧 opengl GluTess 在道路通行的地形上切割孔。但如果单元格大小很大,这些可能会创建非常长的三角形。那么请任何人都可以给我一些指示来解决这个问题吗?顺便说一句,每个地形图块也有其道路切割片。

OpenGL / DirectX 中的任何帮助/建议也应该很有帮助。谢谢!

地形和道路横截面

0 投票
1 回答
2500 浏览

opengl - 如何传递 GL_PATCHES

我正在尝试创建一个插值曲面的示例。首先,我创建了一个插值三叶草的示例。 在此处输入图像描述

这里是我的例子的来源。然后我不得不注意到动画很慢,大约 20-30FPS。经过一些论文,我知道必须将三叶草的评估“移动”到 GPU 中。因此,我研究了一些关于曲面细分着色器的论文。目前我绑定以下简单的顶点着色器:

现在我有很多问题:

  • 我是否像使用 Triangle_Strips 一样使用顶点数组来传递 GL_PATCHES ?哪种方式更快?绘图元素?

glDrawElements(GL_TRIANGLE_STRIP, Indices.Length, OpenGL.GL_UNSIGNED_SHORT, IntPtr.Zero);

还是我应该使用

  • 索引数组呢?如何确定路径意味着补丁的传递顺序。

  • 我是否也计算着色器中的法线?

  • 我找到了一些镶嵌着色器的例子,但在#version400 我可以在移动设备上使用这个版本吗?(OpenGL ES)

  • 我可以通过多线程将多个补丁传递给 GPU 吗?

非常感谢提前。

0 投票
1 回答
356 浏览

unity3d - 从镶嵌着色器生成的三角形的唯一ID?

当您在 HLSL 中创建曲面细分着色器时,有没有办法跟踪这些带有 id 的新三角形?我尝试在几何着色器中使用 SV_PrimitiveID 等语义以及在域着色器中使用 SV_InstanceID,但它们似乎输出了原始网格的数据。我希望能够将数据存储在计算缓冲区中。任何建议都会有所帮助!

谢谢

0 投票
1 回答
383 浏览

c++ - 曲面细分着色器没有输出?

我一直在研究地形 LOD 算法,但主要逻辑在 CPU 上:

基于 CPU 的地形 LOD

我尝试将大部分逻辑转换为 opengl 管道的细分控制和评估阶段,但没有显示任何内容:

基于 GPU 的地形 LOD?

我将代码简化为一个基本的“hello quad”程序

但仍然没有显示(除了蓝色 clearcolor 背景)。所有着色器编译时都没有错误,程序链接也没有错误。

0 投票
1 回答
92 浏览

c++ - 给定一个用三角形镶嵌的补丁,如何修改它的新顶点位置?

我通过三角形镶嵌创建了一个镶嵌平面。我想让每个内部新三角形在 y 轴上上下移动,独立于其他三角形。我想在 TES 或 TCS 中修改他们的 gl_Position 来这样做,但到目前为止我所获得的只是让所有基元同时移动。我怎样才能实现我的目标?

这是镶嵌平面 [plane]:https ://ibb.co/jWRjvH ""

这是我的 TCS

这是我的 TES