问题标签 [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.
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)。
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。
之前在这里问过一个非常相似的问题,到目前为止还没有确凿的答案。
macos - Mac上的Opengl镶嵌错误
我正在mac上尝试镶嵌着色器,但它返回错误列表:
这似乎是曲面细分控制器着色器有问题。
我的 opengl 项目在我的 2010 Windows 电脑上运行良好......我想知道这是否是 macosx 问题?我 Mac 上的 GPU 是 Intel Iris。任何人都对此有所了解...
main.cpp 代码在这里共享
c++ - 用于高度图的凹多边形的近均匀镶嵌
我得到了一个不能有孔的凹多边形的轮廓/边界,我需要对其应用高度图。为此,我需要像这样对多边形进行近乎均匀的细分:
.
如何执行此细分?理想情况下,该解决方案可以参数化内部顶点的“分辨率”以调整细分的细节。
我正在使用 OpenSceneGraph,所以如果使用它的内置曲面细分库以某种方式可能的话,那将是理想的,但我愿意在必要时引入一个额外的(希望是轻量级的)依赖项。
opengl - 通过着色器传递数据
使用顶点时,如何通过着色器传递数据,苔丝。控制,苔丝。评估、几何和片段着色器。我试过以这种方式使用接口块。
比我在镶嵌控制着色器中编写的代码:
因此,镶嵌控制着色器为每个顶点调用一次。这是否意味着 tc_in 必须不是数组而是单个变量。由于偷偷摸摸的 gl_InvocationID,我不太确定。
然后事情变得艰难。细分评估着色器。有些东西告诉我评估着色器应该将接口块作为数组。
移动到几何着色器。几何着色器需要多个顶点,因此,绝对是数组接口块。
对我来说似乎是合法的,但数据没有进入片段着色器。
我会很感激任何建议。
opengl - 根据 OpenGL/DirectX 中的道路轮廓进行地形变形
我计划根据道路剖面使用 OSG(Openscenegraph)进行地形变形。道路网格已单独生成,我将其放在地形上。OSG 生成的地形必须根据道路轮廓自行变形。此外,必须将额外的几何图形添加到靠近道路边界的地形几何图形中,以实现平滑,因为地形四边形图块单元可能太大。
我试图想象这种情况,如下图所示。现在我看到的最好的方法是让 OSG 将地形图块生成为 OSGB 文件。我知道道路边界点。我可以算出一段路段会落在哪个地形上。假设我根据此图知道特定地形四边形图块的道路边界点:
现在我需要对落在道路路径上的地形瓦片单元进行镶嵌或细分。
因此我需要变形以及增加道路边界的地形网格。问题:实现这一目标的最佳方法应该是什么?
- 我可能会使用镶嵌着色器方法,但它可能会在我移动相机的任何地方进行镶嵌,而不是专门在道路边界处。也许创建一个灰度纹理运行时突出显示路面并将其传递给 Tess 着色器以在道路边界进行镶嵌?
- 我可能会使用带有缠绕顺序的旧 opengl GluTess 在道路通行的地形上切割孔。但如果单元格大小很大,这些可能会创建非常长的三角形。那么请任何人都可以给我一些指示来解决这个问题吗?顺便说一句,每个地形图块也有其道路切割片。
OpenGL / DirectX 中的任何帮助/建议也应该很有帮助。谢谢!
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 吗?
非常感谢提前。
unity3d - 从镶嵌着色器生成的三角形的唯一ID?
当您在 HLSL 中创建曲面细分着色器时,有没有办法跟踪这些带有 id 的新三角形?我尝试在几何着色器中使用 SV_PrimitiveID 等语义以及在域着色器中使用 SV_InstanceID,但它们似乎输出了原始网格的数据。我希望能够将数据存储在计算缓冲区中。任何建议都会有所帮助!
谢谢
c++ - 给定一个用三角形镶嵌的补丁,如何修改它的新顶点位置?
我通过三角形镶嵌创建了一个镶嵌平面。我想让每个内部新三角形在 y 轴上上下移动,独立于其他三角形。我想在 TES 或 TCS 中修改他们的 gl_Position 来这样做,但到目前为止我所获得的只是让所有基元同时移动。我怎样才能实现我的目标?
这是镶嵌平面 [plane]:https ://ibb.co/jWRjvH ""
这是我的 TCS
这是我的 TES