Questions tagged «3d-meshes»

3维对象的几何表示。3D网格由三角形或其他多边形的集合组成,形成体积和曲面。它们通常用于计算机屏幕上的视觉表示。

8
用于创建球体的算法?
有没有人有算法来程序地创建一个球体,该球体具有la一定数量的纬度线,lo一定数量的经度线和一个半径为r?我需要它与Unity一起使用,因此需要定义顶点位置,然后通过索引定义三角形(更多信息)。 编辑 我设法使代码统一工作。但是我想我可能做错了什么。当我打开时detailLevel,它所做的就是添加更多的顶点和多边形,而无需四处移动。我忘记了什么吗? 编辑2 我尝试沿其法线缩放网格。这就是我得到的。我想我缺少了一些东西。我应该只缩放某些法线吗?

2
如何在Blender中合并两个对象
我做了什么 我使用“细分曲面”修改器创建了一个Cube对象,以便为spehere建模。 我创建了一个长方体,看起来像一个有角度的长棒。 我想做的事 我想合并这两个对象。因此,我只想拥有一个对象-一个(立方体锁定像)球体,并且在其一侧伸出一个接力棒。它看起来应该有点像头,底部附有喉咙。 我想怎么做 我不想应用“细分曲面”修改器 -我希望以后可以很好地编辑对象。 我不想在接力棒和球体之间留任何空间。它应该是连贯的。 应该没有任何坏作法。一切都应该很好。 我的问题 我怎样才能很好地合并这两个对象?谢谢。-我希望我想描述的很清楚。
23 3d  models  blender  3d-meshes 

1
简化建筑/结构网格的算法
我正在寻找一种算法来简化建筑物或类似结构的网格。 编辑:我评论说,霍普算法倾向于使网格越来越简单。但是,我不确定,因此删除评论。相反,随着简化程度的提高,建筑物应趋于变得越来越矩形。9.0版中的D3D的D3DX扩展(d3dx9.lib)曾经具有用于进行渐进式网格简化的类。请参阅: http : //doc.51windows.net/Directx9_SDK/? url= / directx9_sdk/ graphics / reference/ d3dx / functions/ mesh / d3dxgeneratepmesh.htm http://msdn.microsoft.com/zh-CN/library/windows /desktop/bb281243(v=vs.85).aspx
17 3d-meshes 

1
程序网格:UV贴图
我制作了一个程序网格,现在我想对其应用纹理。问题是,我无法按照自己的意愿坚持下去。 想法是在整个网格上仅将纹理绘制一次,这样就不会重复。我应该如何绘制UV才能做到这一点? 我的网格是由56个三角形组成的简单平面。我会添加图片来清除问题,但是由于我的声誉低于10分,所以无法添加。 任何帮助表示赞赏。 编辑(亲切的人给了我投票,谢谢): 认识我的网格物体: 而当纹理(试图重复纹理): 而我的质感: 编辑2: bummzack的指令就像一个护身符一样工作,并且网孔也按我想要的那样纹理化。谢谢。

3
是什么导致了“掉出世界”,又有什么解决办法?
许多早期的3D游戏都存在一个问题,即您会快步走来走去,突然间一切都变得黑了,岛上看起来像是您走过的场景的空心立面外壳,一直爬到远处。因为你已经脱离了世界。我记得对于Bethesda Softworks来说,这是一个特殊且长期存在的问题,尽管他们并不孤单。自从我在野外看到它已经有一段时间了,所以看来我们已经过去了。我的问题分为两部分: 1)是什么原因造成的?(我的猜测是,这与多边形之间与浮点精度相关的接缝有关,并与点建模的字符位置进行交互,例如,地板块A在位置1.0处结束,地板块B在位置0.9998处开始,并且一微秒内,您的位置是0.99992,然后繁荣,您就跌入了世界,但这只是个猜测。) 2)它是如何修复的?


4
COLLADA怎么了?
几年前,COLLADA看起来将是一件大事,也许最后是一种相当标准化的格式,用于将3D资源从DCC包中获取到游戏的工具管道中。对于不想通过编写自定义导出插件将自己锁定到单个3D包中的独立开发人员而言,这似乎是一个不错的选择。 但是最近我对此知之甚少。而支持其格式的Max / Maya出口商和FCollada lib支持的Feeling Software似乎已经撤消了这些工具的任何免费版本。 这些天COLLADA用途很多吗?是否有任何免费/廉价的libs /工具来帮助处理该格式,还是人们只是自己阅读原始XML? 还是现在有更好的选择-例如,对于一个独立的开发人员,希望将模型,动画从潜在的Max,Maya或Blender引入其引擎中?-FBX?还有吗

3
为体素立方体景观优化网格
尝试在Unity 3D中创建我的世界/乐高世界风景(通过立方体程序生成的体素风景),我发现为这些风景创建的网格占用了大量内存。网格当前仅由多维数据集可见侧的顶点组成。复杂地形的内存使用可能需要6或700兆。 这些网格可以优化,但是我正在努力寻找一个合适的算法来做到这一点。 该算法必须考虑到您不希望“合并”具有不同地形类型的块。我想一个真正简单的开始可能是只处理一个轴上的所有块,并对其他两个轴进行额外的扫描。 我需要保持网格形状,即不要将顶点合并到更改空白或实体空间的位置。原因是,可能仍需要在网格周围导航的生物/等。因此,我不能只创建一个非常低的细节,扭曲的网格。 有任何想法/建议/提示吗?

1
以编程方式绘制球体的中间部分
我正在尝试创建一个球体的中间部分。基本上,要创建一个球体,将给出堆栈编号和切片编号,并且有两个变量phi(用于切片)和theta(用于堆栈)负责进度。并且该过程分为创建底盖,主体和顶盖(如下所示)。要达到中间一半(theta如下所示为中间50%),我们需要省略帽子,并以某种方式修改身体。我在玩堆栈号(1/4*stackNumbers to 3/4*stackNumbers),但没有给出想要的结果。 如何修改球体生成以达到中间一半(pi/4 <theta <pi*3/4)?我的总体问题是如何将球体分为上25%,中50%和下25%的3个不同部分? 以下是流行的以编程方式生成球体的代码: private void generateSphere(int stackNumber, int sliceNumber, boolean facingOut) { int capVertexNumber = 3 * sliceNumber; int bodyVertexNumber = 4 * sliceNumber * (stackNumber - 2); int vertexNumber = (2 * capVertexNumber) + bodyVertexNumber; int triangleNumber = (2 * capVertexNumber) + (6 * sliceNumber …

1
如何在Unity中运行时从交互式布料保存网格?
在场景开始时,我将一个名为“ sheet”的GameObject放置在“ ball” GameObject上方。该工作表上有一个互动式布料组件和一个布料渲染器。交互式布料组件的网格是具有大量顶点的平面。在运行时,薄片落在球上并创建我想要的形状。如果此时禁用“交互式布料”组件,则图纸网格将完全保持所需,但无法将其作为预制件拉出。 有谁知道获取该形状副本的方法? 例如,通过在运行时从Interactive Cloth中读取网格,然后使用它来将网格更改回我想要的没有Interactive Cloth组件的方式。 任何帮助将不胜感激。
10 unity  c#  3d-meshes  cloth 

5
为什么在Vector3s中不能使用运算符'> ='?
我正在尝试获得一个矩形,以便在我称为_positionA和的两个位置之间移动_positionB。两者都是类型Vector3。矩形移动得很好。但是,到达时_positionB它不会像应该的那样朝相反的方向移动。 我回到代码中看一看。我得出的结论是,随着对象的移动,if代码中的语句错过了rects位置等于的框架_positionB。如果rects的位置大于或等于, 我决定将代码修改为反向_positionB。我的代码不太长,因此我将在下面显示它: using UnityEngine; using System.Collections; public class Rectangle : MonoBehaviour { private Vector3 _positionA = new Vector3(-0.97f, -4.28f); //Start position private Vector3 _positionB = new Vector3(11.87f, -4.28f); //End position private Transform _rect_tfm; private bool _atPosA = false, _atPosB = false; public Vector2 speed = new Vector2(1f, 0f); private …
9 unity  c#  vector  mathematics  vector  matrix  unity  c#  transformation  java  3d  terrain-rendering  shading  ios  opengl-es  opengl  rendering  optimization  python  scripting  minecraft-modding  modding  pc  3d-meshes  mesh  culling  point-cloud  networking  interpolation  mathematics  game-design  ai  game-mechanics  animation  unreal-4  skeletal-animation  3dsmax  unity  c#  3d  opengl  c++  textures  unity  ide  cocos2d  cocos2d-x-js  unity  c#  mono  il2cpp  c++  game-loop  timer  linux  flash  actionscript-3  java  glsl  c++  vector  entity-component  c++  directx11  windows  visual-studio  libgdx  mouse  unity  c#  architecture  storage  unity  c#  rotation  coordinates  quaternion  vrpn  movement  vector  unreal-4  unity  shaders  unity  gui  text  bug  shooter  3d  animation  rendering  voxels  c++  mmo  multithreading  linux  textures  procedural-generation  terrain-rendering  multiplayer  mmo  game-state  java  android  libgdx  opengl  procedural-generation  unity  gui  3d  animation  tools  geometry-shader  mobile  advertisements  unity  c#  animation  scripting  unity  animation  unityscript  coroutines  unity  shaders  lighting  camera 

2
建立三角形邻接数据
给定一个三角形索引列表,如何将其转换为具有几何着色器邻接关系的索引列表呢? 请注意,我们在这里严格地讨论索引 -存在顶点,但是我们将仅关注索引,因为我们可以使用它们来匹配重复的顶点,而不必进行浮点比较和epsilon-这项工作已经完成了。 我知道对于列表中的任何给定三角形,索引为{0,1},{1,2}和{2,0}(或{n,n + 1},{n + 1,n + 2},{ n + 2,n}(如果您愿意)的形式形成边缘;索引列表格式正确,并正确遵守绕线顺序。 我知道,对于任何给定的此类边缘,我们都可以在整个列表中搜索使用两个索引的另一个三角形,并且该三角形的第三个索引是用于完成该边缘的相邻三角形的索引。 我知道在邻接表中,每个原始三角形都由6个索引表示,原始索引分别进入插槽0、2、4;完成邻接的新索引进入插槽1、3、5。边缘{0,1}完成的索引进入插槽1,边缘{1,2}完成的索引进入插槽3,索引完成以完成边{2,1}进入插槽5。 我尝试了什么? 我已经尝试过强行使用,是的,那行得通,但是我追求的是更优雅的方法。 我已经尝试了Eric Lengyel的边缘列表生成器,但是(1)它似乎并不遵循原始的三角形顺序,(2)它似乎并不遵循缠绕的顺序,(3)泥泞无处接下来,在构建边缘列表之后,以及(4)我怀疑示例代码具有明显的明显错误,例如“ triangleIndex”与“ faceIndex”-作者甚至编译了代码,没关系将其运行到验证吗? 那么-从这里开始有什么建议或指示吗?

2
体素面爬行(简化网格,可能使用贪婪)
编辑:这只是出于我自己的学习经验,并不是出于性能原因而问这个问题。 这是关于Minecraft类地形引擎的。我以块的形式存储块(以块的形式存储16x256x16块)。生成块时,我使用多种过程技术来设置地形和放置对象。生成时,我为整个块(是否有实体)保留一个1D数组,并为实体块保留一个单独的1D数组。 生成后,我遍历实体块以检查它们的邻居,以便仅生成没有实体邻居的块面。我将要生成的面孔存储在自己的列表中(这是6个列表,每个可能的面孔/正常面孔一个)。渲染块时,我渲染相机当前块中的所有列表,而所有其他块中仅渲染面向相机的列表。通过将所有6个列表存储在一个缓冲区中来完成此操作,然后只需更改绘制的范围即可。 结合使用2D地图集和Andrew Russell提出的这个小技巧,我想将相似的面孔完全融合在一起。也就是说,如果它们在相同的列表中(相同的标准),彼此相邻,具有相同的光照水平等。我知道我仍然会以矩形结尾,但是这样可以轻松地将我的顶点数减少50%如果我的估计正确的话,还是更好。 我的假设是将6个列表中的每个列表按其所在的轴排序,然后再按其他两个轴排序(块顶部的列表按其Y值,X,Z排序)。 仅此一项,我就可以很容易地合并面带,但我希望尽可能地合并多个面带。我已经阅读了这个贪婪的网格划分算法,但是在理解它时遇到了很多麻烦。 所以,我的问题是:要按照描述的那样进行人脸合并(忽略对动态地形/照明是否是个坏主意),也许有一种算法更易于实现吗?我也很乐意接受一个答案,它以一种更简单的方式(链接或解释)引导我完成贪婪算法。 我不介意如果它更容易实现,甚至比仅做剥离要好一点,性能都会略有下降。我担心大多数算法都将注意力集中在三角形而不是正方形上,并以我的方式使用2D地图集,我不知道我可以根据当前的技能来实现某些三角形。 PS:我已经对每个块都进行了截锥体剔除,并且如上所述,我也剔除了实体块之间的面。我还没有遮挡剔除,可能永远不会。 *编辑:我实现了自己的小技巧,可能有一个名字,但是我只是简单地浏览了我的6个列表,这些列表按照它们所靠的轴,其次是块类型,然后是照明级别进行了排序。我遍历它们,同时创建新的矩形并同时进行扩展(偏向某个轴)。绝对不是最佳选择,但确实非常快,并且确实使我的顶点数平均降低了近50%。Byte56的评论是我认为是真正答案的壁橱,但我不能选择它作为答案/赏金。 这是在生成完整的初始地形后无需进行任何优化的情况下处理此问题的快速简便的方法。假定给定的所有正方形都是相同的图像,光照水平,法线等。每种颜色都是我要渲染的不同四边形。根据我的列表的排序方式,这是一种非常简单/快速的方法。

2
为什么我的模型不能连续点亮?
我使用Blender创建了一个基本的纹理立方体模型来进行建模,然后将其导入Unity。我放了一些照明灯后,看起来很难看。一排纹理立方体上的光线不连续: 更奇怪的是,组成地板的砖块上的灯光是连续的。我究竟做错了什么? 这是没有纹理的外观: 如果我不知道这些是完美的立方体,我会说表面上有轻微的弯曲。我也尝试减轻纹理,但这也无济于事: 我只是简单地从Blender中导出模型,而没有设置任何法线或类似的东西。但是,对于地板砖模型,我也没有做任何特别的事情。 检查法线,它们似乎指向正确的方向。 我也没有真正看到两个模型之间的区别。在纹理面板上,我还将投影设置为平坦: 我检查了Blender中的不同面板,“对象数据”面板上唯一与法线相关的选项是“自动平滑”,默认情况下处于关闭状态:
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.