标签: mesh

检测相机和网格之间的碰撞

我想要一个事件,当相机触摸网格时,它会移动到其他地方,例如门户。

这是我的相机:

function MaCamera(scene, positionCx, positionCy, positionCz) 
{        
    var freeCamera = new BABYLON.FreeCamera("FreeCamera", new BABYLON.Vector3(positionCx, positionCy, positionCz), scene);
         freeCamera.rotation = new BABYLON.Vector3(0.5, 0, 0);
         freeCamera.attachControl(canvas, true);
         freeCamera.checkCollisions = true;
         scene.activeCamera = freeCamera;
}
Run Code Online (Sandbox Code Playgroud)

这是我的网格:

var drawMirror = BABYLON.Mesh.CreateBox("rectangle", 1, scene);
      drawMirror.scaling = new BABYLON.Vector3(12, 0.1, 20);
      drawMirror.rotation.x = Math.PI / 2;
      drawMirror.position = new BABYLON.Vector3(positionMx, positionMy, positionMz);
      drawMirror.checkCollisions = true;
Run Code Online (Sandbox Code Playgroud)

mesh collision-detection babylonjs

1
推荐指数
1
解决办法
2602
查看次数

gmsh中如何保证节点点?

我正在尝试构建一个非常简单的网格。我有一个盒子:

box_size = 50;
lb = 10.;
Point(1) = {-box_size/2, -box_size/2, -box_size/2, lb};
Point(2) = {box_size/2, -box_size/2, -box_size/2, lb};
Point(3) = {box_size/2, box_size/2, -box_size/2, lb};
Point(4) = {-box_size/2, box_size/2, -box_size/2, lb};
Line(1) = {1, 2};
Line(2) = {2, 3};
Line(3) = {3, 4};
Line(4) = {4, 1};
Line Loop(5) = {1, 2, 3, 4};
Plane Surface(6) = {5};
Extrude {0, 0, box_size} {
  Surface{6};
}
Run Code Online (Sandbox Code Playgroud)

这工作得很好,gmsh 很乐意对其进行 (3D) 网格划分。问题是我要确保盒子内的某些点是节点。所以我的问题是,我如何确保这些点,比如这些

lc = 10;
Point(5) = {7.150548, 1.000000,  -6.990684, lc};
Point(6) = …
Run Code Online (Sandbox Code Playgroud)

numeric mesh numerical-methods finite-element-analysis gmsh

1
推荐指数
1
解决办法
3484
查看次数

WebGL – 使用网格作为背景图像的蒙版

我需要使用 WebGL 解决以下问题:

想象一下相机前面有一个网格。网格实际上并未着色,但它的“轮廓”作为一个整体用于将背景图像显示为某种蒙版或模板(如果您愿意的话)。因此,例如,您将得到一个具有白色背景的输出图像和一个填充有纹理/图像的轮廓形状,作为该位置的背景。

也许图片能更好地解释它(我想要使用的网格显然比球体更复杂)

达到这种效果的最佳方法是什么?我考虑了两种投影映射,即从相机角度将背景纹理投影到网格上。或者也许模板缓冲区是可行的方法?据我了解,目前它的支持度并不高。也许还有一种更简单的方法来解决我错过的这个问题?

html background mesh mask webgl

1
推荐指数
1
解决办法
2275
查看次数

检测 Gmsh 中的交叉点

我正在考虑使用 gmsh 来替代 Ansys 网格划分器(避免 Workbench/APDL 的网格文件类型不兼容)。

我想实现一种算法来在立方体中引入球体(稍后它将是任何类型的体积)。它们不应相互接触,因此我需要检查我要介绍的卷是否与我之前介绍的任何卷相交。

理想情况下,最好有一个检查边界的命令。我看到有一些命令,例如Boundary,PointsOf和 ,CombinedBoundary它似乎检索边界上的实体。但我不确定它们是如何工作的(文档没有解释没有边界时会发生什么)。我尝试在 GUI 中使用这些命令,但找不到它们。

其他选项(但速度较慢)是尝试交集命令(不删除任何原始卷)并检查交集后有多少卷。如果比以前多了,就有交集。但我对这个解决方案不太满意。无论如何,我需要能够计算前后的卷数,我在 gmsh 文档中没有看到类似的内容。

所以,我的问题是:是否有可能在实际执行交叉之前检测 gmsh 中的交叉?是否可以计算卷数(我想是的)?

非常感谢。亲切的问候,

mesh

1
推荐指数
1
解决办法
2378
查看次数

Three.js:克隆网格和材质 » 切换克隆的不透明度

使用该命令Mesh.clone();您可以克隆网格。搜索显示几何形状和材料被保留。但是,我想以不同的方式控制两个网格的不透明度。因此我认为我也必须克隆这些材料。

有没有办法复制包含材质的网格,以便我可以与原始网格分开控制新网格的不透明度?

javascript clone mesh three.js

1
推荐指数
1
解决办法
1547
查看次数

如何在特殊曲面网格中对边进行排序

这是一个功能,使用了几天前我问过的问题答案的建议.让我们在Mathematica中创建一个Graphics3D对象.我从这里使用这个3D几何数据.

cd = Import[NotebookDirectory[] <> "withwake.obj"];
vertices = cd[[1, 2, 1]];
polygons = Flatten[cd[[1, 2, 2, 1]] /. Polygon -> List, 2];
Graphics3D[GraphicsComplex[vertices, Polygon[polygons]]]
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

对于每个多边形,我们创建一个指向其顶点的数字列表,然后是指向每个边连接到的多边形的数字.重要的是要注意表面正常; 定义面板的节点顺序应为逆时针.通过右手规则,如果手指弯曲以跟随编号,拇指将显示应指向"向外"几何的法线向量.

如果Graphics3D对象中的所有多边形都是三角形,则此函数会创建此类列表.

EdgeSorting[vertices_, polygons_] := 
Block[{triangleEdges, singleEdges, edgesNeighbors, relations, n, n1,
 n2, trires, triangleNeigbours, TriangleMaker, polygonArea, tring},
(*Split every triangle in 3 edges,with nodes in each edge sorted*)   
triangleEdges = (Sort /@ Subsets[#, {2}]) & /@ polygons;
(*Generate a list of edges*)
singleEdges = Union[Flatten[triangleEdges, 1]];
(*Define a function …
Run Code Online (Sandbox Code Playgroud)

wolfram-mathematica mesh

0
推荐指数
1
解决办法
579
查看次数

MATLAB:在子图中绘制/保存网格函数的XY视图

正如标题所说,我正在尝试将网格函数的2变量切片(例如.jpg)保存为子图.我想使用.m文件执行此操作,因为我有许多图表要生成.我已经弄清楚如何在他们自己的数字上绘制视图,但我不能让他们正确地绘制成图中的子图.说明我的意思:

以下是各个图的输出:

3D网格:3D MATLAB网格图
XY视图:XY MATLAB网格视图
YZ视图:YZ MATLAB网格视图
XZ视图:XZ MATLAB网格视图

这是我的绘图代码(不工作):

%Ambiguity Surface
fid = figure(fnum);
    axes1 = axes('Parent',fid);
    view(axes1,[-62.5 28]);
    grid(axes1,'on');
    hold(axes1,'all');
    msh = mesh(taux,fdy,z,'Parent',axes1);
    xlabel ('Delay - seconds');
    ylabel ('Doppler - Hz');
    zlabel ('Ambiguity function (Normalized Magnitude-Squared)');
    fname = strcat(name,' (Ambiguity Function z(\tau;F_d))');
    title(fname);
    cb = colorbar('peer',axes1);
    set(get(cb,'ylabel'),'String','Magnitude-Squared (dB)');
    hold off;
    printFig(fid,fnum,sname)
    fnum = fnum + 1;

%Ambiguity Slices
fid = figure(fnum);
    hold all;
    subplot(2,1,1);
        axes1 = axes();
        grid(axes1,'on');
        view(axes1,[90 0]);
        msh = mesh(taux,fdy,z); …
Run Code Online (Sandbox Code Playgroud)

3d matlab plot mesh subplot

0
推荐指数
1
解决办法
1万
查看次数

网格压缩会提高 Unity3D 游戏的性能吗?

我想知道Unity的网格压缩是否可以提高低端硬件的游戏性能。

网格压缩是否会降低游戏的要求,还是仅对减少文件大小和游戏占用的存储空间有用?

compression mesh unity-game-engine

0
推荐指数
1
解决办法
6705
查看次数

如何在MATLAB中使用特定的色彩图绘制3D三角形网格形状?

3D三角形网格形状由顶点和三角形面表示.例如,shape在matlab中shape.X, shape.Y, shape.Z(the vertices) and shape.TRIV(the triangle faces)可以看作3D三角形网格形状.

我的问题是如何使用特定的色彩图在MATLAB中可视化这样的形状.

(例如,该颜色映射可被定义为一个距离向量length(shape.X)其元素是所有顶点的到单个顶点的欧几里德距离M,在这种情况下,涉及到较小的距离的冷却器的颜色,和较热的颜色相关的较大的距离. )

3d matlab plot mesh point-clouds

0
推荐指数
1
解决办法
706
查看次数

运行时从输入框 (Text Mesh Pro) 设置结束编辑事件

我正在 Unity 中编写游戏,但在使用 Text Mesh Pro 输入框中的 On End Edit 事件时遇到问题。我需要在运行时定义事件(在代码中)。我真的不知道如何解决这个问题。

这是编辑器中事件的图片,我希望它连接到 PlayerConnectionManager 类中的 PressedButton 方法:

这是编辑器中活动的图片

感谢您的任何帮助!

c# mesh unity-game-engine

0
推荐指数
1
解决办法
8569
查看次数

对于多个网格的FBX模型,网格不会显示在正确的位置

我导入了一个由多个网格组成的FBX模型.不幸的是,我无法将每个网格显示在正确的位置.对于每个网格,我将网格的几何变换与网格的局部变换相乘,然后将其传递给着色器.我该如何解决这个问题?

OpenGL着色器

gl_Position = modelViewProjectionMatrix *TransformationMatrix*vertexPositionsOfMesh;
Run Code Online (Sandbox Code Playgroud)

创建转换矩阵

GLKMatrix4 LcLTransformation = createTransformationMatrix(
   Mesh->LclRotation,
   Mesh->LclScaling,
   Mesh->LclTranslation);
GLKMatrix4 GeoTransformation = createTransformationMatrix(
   Mesh->GeometricRotation,
   Mesh->GeometricScaling,
   Mesh->GeometricTranslation);
TransformationMatrix=GLKMatrix4Transpose(GLKMatrix4Multiply(LcLTransformation,
                                                            GeoTransformation));
Run Code Online (Sandbox Code Playgroud)

createTransformationMatrix

GLKMatrix4 createTransformationMatrix(float* _rotation, float* _scaling, float* _translation)
{
  GLKMatrix4 Rx = GLKMatrix4Make(1, 0,                 0,                  0,
                                 0, cos(_rotation[0]), -sin(_rotation[0]), 0,
                                 0, sin(_rotation[0]), cos(_rotation[0]),  0,
                                 0, 0,                 0,                  1
                                 );

  GLKMatrix4 Ry = GLKMatrix4Make(cos(_rotation[1]),  0, sin(_rotation[1]), 0,
                                 0,                  1, 0,                 0,
                                 -sin(_rotation[1]), 0, cos(_rotation[1]), 0,
                                 0,                  0, 0,                 1
                                 );

  GLKMatrix4 Rz = GLKMatrix4Make(cos(_rotation[2]), -sin(_rotation[2]), 0, 0,
                                 sin(_rotation[2]), …
Run Code Online (Sandbox Code Playgroud)

c opengl transformation mesh fbx

-9
推荐指数
1
解决办法
4381
查看次数

如何在斐波那契球体的点之间绘制三角形?

我在这里使用这个函数创建点。

local GR = (math.sqrt(5) + 1) / 2
local GA = (2 - GR) * (2 * math.pi)

local function fibonacciSpiralSphere(num_points)
    local vectors = {}

    for i = 1, num_points do
        local lat = math.asin(-1 + 2 * i / (num_points + 1))
        local lon = GA * i

        local x = math.cos(lon) * math.cos(lat)
        local y = math.sin(lon) * math.cos(lat)
        local z = math.sin(lat)

        table.insert(vectors, Vector3.new(x, y, z))
    end

    return vectors
end
Run Code Online (Sandbox Code Playgroud)

分数结果如何。
1

我只是不知道如何用它们制作球体网格。

lua mesh fibonacci

-16
推荐指数
1
解决办法
919
查看次数