问题标签 [mesh]
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.
mesh - 如何实时平滑由 Marching Cubes 生成的网格?
我现在正在为一个项目使用行进立方体算法(从 CT 图像实时渲染人类牙齿)。这是渲染结果:
http://www.freeimagehosting.net/uploads/4c2e2c94be.jpg
可以看到 MC 生成的网格不是那么平滑。你们知道任何可以应用于输出 MC 的实时平滑算法吗?或者,是否有任何改进版的 MC 可以生成光滑的表面?
请注意,平滑算法需要快速,因为稍后我必须在大约 30HZ 使用 MC,以便在交互式变形期间重新计算等值面。
algorithm - 在 3D 网格中生成圆角的算法
从 3D 网格开始,如何为该网格的多边形之间的边和角赋予圆润的外观?
在不希望阻止其他方法的情况下,这是我目前解决问题的方式:
给定正多面体的网格,我可以通过沿其平面缩放每个多边形并使用圆柱段连接边缘,使每个圆柱与它与该多边形相交的每个多边形相切,从而使网格的边缘呈现圆形外观。
这是一个涉及立方体的示例:
这是缩放多边形后的立方体:
这是使用圆柱体连接多边形边缘后的立方体:
我遇到的麻烦是弄清楚如何处理多边形之间的角,尤其是在每个角处有超过三个边相遇的情况下。我还想要一种适用于所有封闭多面体的算法,而不仅仅是那些规则的多面体。
direct3d - 任何 .X(DirectX 3D 对象)都可以用作渐进式网格吗?
我正在学习 Direct3D 的渐进式网格。我尝试了 SDK 示例(ProgressiveMesh)并修改了代码以将默认对象替换为其他一些 .X 文件。
该应用程序有时可以处理一些 .X 文件,但不是全部,尤其是当文件很大并且崩溃时。
无论如何可以告诉我是否有任何 .X 对象可以用作渐进式网格?该示例是否自动将对象转换为渐进式网格?如果没有,那么如何获取渐进式网格文件以便将其加载到 SDK 示例中?
谢谢!
iphone - iPhone opengl网格渲染在屏幕的一个角落?
很抱歉这么长的代码块,但我认为包含所有代码是有意义的。无论我玩什么,我都无法让我的网格渲染全屏。视口是全屏的,GL 视图也是如此。这是发生的事情:
http://img191.imageshack.us/img191/247/screenshot2010082000163.png
这是在我的绘图循环中运行的代码:
谢谢!
c++ - 如何为多边形网格生成半边结构表示?
我想生成输出以显示基于多边形网格数据输入(以数字数据形式)的半边结构的数字数据。
读取多边形模型的概念基本上是这样的:
对于 INPUT,文件为 OFF 格式,包括以下数据
: (a) 第一部分:顶点数、面数和边数。
(b) 第二部分:每个顶点的线,
(c) 最后一部分:每个多边形面的线。
示例:(根据上面)
第一部分:
4 4 6
第二部分:
-1.7 0.0 1.0
1.7 0.0 1.0
0.0 0.0 -2.0
0.0 3.0 0.0
最后一部分:
3 0 1 2
3 0 3 2
3 3 2 1
3 0 2 3
并且,程序必须能够生成以下数据:
(a) Vertices:
1. vertex index (顶点输入的总数)
2. 每个 x 坐标、y 坐标、z 坐标和半边
(b) Half-Edges:
1. 半边索引 (Total number of从上面的 a.2. 生成的半边)
2. 起始顶点、面、下半边和相邻的半边。
(c) 面:
1. 面索引(如 b.2 所示的面总数,从 0 开始)
2. 半边。
概念就是这样,不需要显示视觉图形,但需要使用算法生成简单的半边结构数据,然后使用记事本等读取 OUTPUT 文件。
opengl - 有关 3D 模型渲染基础知识的资源
也许我错过了一些东西,但我已经找不到任何关于这个的问题了。如果有人知道,那么如果您可以发布链接,那就太好了。
我知道已经有大量的大型开源引擎,它们真的很容易使用,需要一个不是问题,但我不喜欢不知道我想使用的东西是如何工作的。但是环顾四周,我找不到任何东西。我不是一个疯狂的孤独任务来制造引擎的受虐狂。
我已经完成了 OpenGL 的所有基础知识,我可以对其进行硬编码以绘制一些东西,我不需要从第一次启动它开始完整的运行,但我不知道如何将其移动到渲染模型,并且似乎没有任何地方可以解释它。我试图查看是否可以在任何文件类型的结构上找到任何东西,看看我是否可以弄清楚自己如何使用它们来渲染模型,但这有点死胡同。
c# - 如何挤出一个平面 2D 网格,赋予它深度
我有一组共面连接的三角形,即二维网格。现在我需要在 z 轴上将它挤出几个单位。网格由一组顶点定义,渲染器通过匹配三角形数组来理解这些顶点。
示例网格:
顶点:(0,0,0), (10,0,0), (10,10,0), (0,10,0) <-- (x,y,z) 三角形:(1, 2, 3) & (3, 4, 1) <-- 这里的数字指的是上面一个顶点的位置。
所以这里我们有一个二维正方形。现在我需要在该列表中添加更多顶点和三角形来制作拉伸形状。三角形必须是顺时针方向,否则它们会被背面剔除。
有一个简单的算法吗?谢谢你。
arm - 用于 BeagleBoard 的 OpenEmbedded 中的 DTN
我正在尝试使用OpenEmbedded构建DTN。不幸的是,DTN 使用 Tcl 8.3 或 8.4 以及 DB 4.2、4.3、4.4 或 4.5,但 bitbake 使用的是 Tcl 8.5 和 DB 5.0。
在 OpenEmbedded recipes 目录中,除了其他文件之外,还存在:
db/
db/db_4.3.29.bb
db/db4-native.inc
db/db3-native_3.2.9.bb
db/db_5.0.21.bb
db/db3-3.2.9
db/db4.inc
db/files
db/db -native_4.3.29.bb
db/db3_3.2.9.bb
db/db-native_5.0.21.bb
db/db5.inc
tcltk/
tcltk/tk
tcltk/tk_8.4.19.bb
tcltk/tcl-native_8.4.19.bb
tcltk/ tk-8.5.8
tcltk/tk-native_8.4.19.bb
tcltk/tk_8.5.8.bb
tcltk/文件
tcltk/tcl
tcltk/tcl-8.5.8
tcltk/tcl_8.5.8.bb
tcltk/tcl_8.4.19.bb `
在 bitbake 配置 dtn 时,会发生以下情况:
| 检查包含 pow 的库... -lm
| 检查包含 dlopen 的库... -ldl
| | 配置:检查 tcl 安装(版本 8.4)
| 在 /opt/OpenEmbedded/build/tmp/sysroots/armv7a-angstrom-linux-gnueabi usr/include 中检查 tcl.h(版本 8.4)... 否
|
| 配置:检查 tcl 安装(版本 8.3)
| 在 /opt/OpenEmbedded/build/tmp/sysroots/armv7a-angstrom-linux-gnueabi/usr/include 中检查 tcl.h(版本 8.3)
... 配置:错误:找不到可用的 tcl.h
注意:任务失败:/opt/OpenEmbedded/build/tmp/work/armv7a-angstrom-linux-gnueabi/dtn-2.5.0-r5/temp/log.do_configure。 27117
错误:TaskFailed 事件异常,正在中止
错误:/opt/OpenEmbedded/openembedded/recipes/dtnrg/dtn_2.5.0.bb do_configure 的构建失败
错误:任务 11(/opt/OpenEmbedded/openembedded/recipes/dtnrg/dtn_2.5.0.bb,do_configure)失败
注意:任务总结:尝试了897个任务,其中883个不需要重新运行,1个失败。
错误:'/opt/OpenEmbedded/openembedded/recipes/dtnrg/dtn_2.5.0.bb' 失败`
为了解决这个问题,我去了 dtn_2.5.0.bb 并添加了 --with-tclver=8.5。
DB也发生了同样的事情,为了再次解决它,我做了同样的事情。
过了一会儿,当 bitbake 编译时,发生了以下情况:
| 在 storage/BerkeleyDBStore.cc:35 包含的文件中:
| storage/BerkeleyDBStore.h:31:2: error: #error "must use Berkeley DB major version 4" | 在 /opt/OpenEmbedded/build/tmp/sysroots/i686-linux/usr/armv7a/lib/gcc/arm-angstrom-linux-gnueabi/4.3.3/../../../.. /arm-angstrom-linux-gnueabi/include/c++/4.3.3/ext/hash_set:64
,
| 来自存储/../util/StringUtils.h:39,
| 来自存储/DurableStore.h:35,
| 来自存储/BerkeleyDBStore.h:39,
| 来自存储/BerkeleyDBStore.cc:35:
| /opt/OpenEmbedded/build/tmp/sysroots/i686-linux/usr/armv7a/lib/gcc/arm-angstrom-linux-gnueabi/4.3.3/../../../../arm-angstrom -linux-gnueabi/include/c++/4.3.3/backward/backward_warning.h:33:2: 警告:警告 此文件包含至少一个已弃用或过时的标头,将来可能会在不另行通知的情况下将其删除。
请改用具有等效功能的非弃用接口。有关替换标头和接口的列表,请参阅文件 backward_warning.h。要禁用此警告,请使用 -Wno-deprecated。
| storage/BerkeleyDBStore.cc:在成员函数“virtual int oasys::BerkeleyDBStore::init(const oasys::StorageConfig&)”中:
| storage/BerkeleyDBStore.cc:129:警告:从 'void ( )(const char)的无效转换, char*)' 到 'void ( )(const DB_ENV , const char*, const char*)'
| storage/BerkeleyDBStore.cc:187:错误:未在此范围内声明“DB_LOG_AUTOREMOVE”| make 1 : *** [storage/BerkeleyDBStore.o] 错误 1
| make 1 : 离开目录``/opt/OpenEmbedded/build/tmp/work/armv7a-angstrom-linux-gnueabi/dtn-2.5.0-r5/dtn-2.5.0/oasys'
| 制作:* [oasys] 错误 2
| 致命:oe_runmake 失败
注意:任务失败:/opt/OpenEmbedded/build/tmp/work/armv7a-angstrom-linux-gnueabi/dtn-2.5.0-r5/temp/log.do_compile.5339
错误:TaskFailed 事件异常,正在中止
错误:/opt/OpenEmbedded/openembedded/recipes/dtnrg/dtn_2.5.0.bb do_compile 的构建失败
错误:任务 13 (/opt/OpenEmbedded/openembedded/recipes/dtnrg/dtn_2.5.0.bb, do_compile) 失败
注意:任务摘要:尝试了 913 个任务,其中 913 个不需要重新运行,1 个失败。
错误:'/opt/OpenEmbedded/openembedded/recipes/dtnrg/dtn_2.5.0.bb' 失败`
那么,有没有办法“告诉”bitbake 或 OpenEmbedded 使用我选择的版本?