标签: 3d

使用R绘制具有等高线图叠加的3D表面图

我有一个3元组数据集(X,Y,Z点),我想用R绘图.

我想从数据中创建一个曲面图,并在曲面图上叠加一个等高线图,以便创建轮廓图的印象,即从表面图中"阴影"或投影.等高线图将显示在曲面图下方.

我的数据集看起来有点像这样:

Axis  |  Data Type
-------------------
X     |  Date value
Y     |  Float value
Z     |  Float value
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

3d statistics plot r

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

使用鼠标在Three.js中旋转相机

我的场景中有很多物体,所以旋转所有物体都会很痛苦.那么在鼠标点击和拖动时最简单的移动相机来源的方法是什么?这样,场景中的所有灯光,物体都在同一个位置,所以唯一改变的是相机.Three.js没有提供围绕某个点旋转相机的方法,或者它是什么?

谢谢

javascript 3d three.js

60
推荐指数
3
解决办法
11万
查看次数

用什么?Tao,SharpGL,Op​​enTK,DirectX P/Invoke,XNA,MDX,SlimDX,Windows API编解码器包

回到白天很容易; 你制作了自己的3D东西,然后是DirectX,然后是OpenGL.对于.Net开发人员来说MDX很不错.然后XNA接管了MDX,但它不一样.XNA似乎非常以游戏为中心,包含固定模型和内容的所有内容流水线和预加载.

那么我们现在站在哪里?经过几天的研究/试验和错误,我觉得无处不在,我发现半开发的库,库有开销,严重的限制或过于复杂的库.

我想做"自由手"的3D东西.例如,在3D屏幕上显示200k点,并以30fps(Kinect深度图像)移动它们.我想制作3D屏幕保护程序,音频分析插件等.所有这些都不是内容管道的预制件,而且需要高性能.而且(嗯)我想从.Net那里做.

任何人都有图书馆的经验,这些图书馆既简单易懂又能提供相当大的自由和速度?

c# 3d

59
推荐指数
2
解决办法
2万
查看次数

改进了WebGL和ThreeJS中的区域照明

我一直在研究WebGL中的区域照明实现,类似于这个演示:

http://threejs.org/examples/webgldeferred_arealights.html

以上在three.js中的实现是从gamedev.net上的ArKano22的工作中移植出来的:

http://www.gamedev.net/topic/552315-glsl-area-light-implementation/

虽然这些解决方案非常令人印象深刻,但它们都有一些局限性.ArKano22最初实现的主要问题是漫反射项的计算不考虑曲面法线.

几个星期以来,我一直在增加这个解决方案,使用redPlant的改进来解决这个问题.目前我将正常的计算结合到解决方案中,但结果也存在缺陷.

以下是我当前实施的预览:

区域照明预告片

介绍

计算每个片段的扩散项的步骤如下:

  1. 将顶点投影到区域光所在的平面上,以使投影向量与光的法线/方向一致.
  2. 通过将投影矢量与光线法线进行比较,检查顶点是否位于区域光平面的正确一侧.
  3. 从光的中心/位置计算该投影点在平面上的2D偏移.
  4. 夹住此2D偏移矢量,使其位于灯光区域内(由其宽度和高度定义).
  5. 导出投影和夹紧2D点的3D世界位置.这是区域光到顶点的最近点.
  6. 通过获取顶点到最近点矢量(标准化)和顶点法线之间的点积来执行通常的点光计算.

问题

该解决方案的问题在于,照明计算是从最近的点完成的,并且不考虑光表面上可能照亮片段的其他点.让我试着解释一下为什么......

请考虑以下图表:

有问题的区域照明情况

区域光线垂直于表面并与之相交.表面上的每个碎片将始终返回表面和光相交的区域光上的最近点.由于曲面法线和顶点到光线矢量总是垂直的,因此它们之间的点积为零.随后,尽管在表面上隐藏着大面积的光,但漫射贡献的计算为零.

潜在解决方案

I propose that rather than calculate the light from the nearest point on the area light, we calculate it from a point on the area light that yields the greatest dot product between the vertex-to-light vector (normalised) and the vertex normal. In the diagram above, this would be the purple dot, rather than the …

math 3d lighting webgl three.js

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

如何将2D点反转投影到3D?

我在屏幕空间中有4个2D点,​​我需要将它们反向投影回3D空间.我知道4个点中的每一个都是3D旋转的刚性矩形的一个角,我知道矩形的大小.如何从中获取3D坐标?

我没有使用任何特定的API,我没有现有的投影矩阵.我只是在寻找基本的数学来做到这一点.当然没有足够的数据将单个2D点转换为3D而没有其他参考,但我想如果你有4个点,你知道它们在同一个平面上都是直角相交的,而且你知道它们之间的距离,你应该能够从中找出它.不幸的是,我无法解释如何.

这可能属于摄影测量的范畴,但谷歌搜索它并没有让我获得任何有用的信息.

3d geometry 2d reverseprojection photogrammetry

58
推荐指数
5
解决办法
4万
查看次数

3D碰撞/物体检测如何工作?

我总是想知道这一点.在像GTA这样的游戏中,有数以万计的物体,一旦你在健康包上,游戏怎么知道呢?

每个对象都不可能有一个事件监听器?迭代也不好?我只是想知道它是如何实际完成的.

algorithm 3d collision-detection data-structures

54
推荐指数
2
解决办法
3万
查看次数

有没有办法将3D模型导入Android?

是否可以创建一个简单的3D模型(例如在3DS MAX中),然后将其导入Android?

3d android opengl-es

53
推荐指数
4
解决办法
6万
查看次数

如何将3D点转换为2D透视投影?

我目前正在使用Bezier曲线和曲面来绘制着名的犹他州茶壶.使用16个控制点的Bezier贴片,我已经能够绘制茶壶并使用"世界到相机"功能显示它,这使得能够旋转生成的茶壶,并且目前正在使用正交投影.

结果是我有一个"扁平"茶壶,预计正投影的目的是保持平行线.

但是,我想使用透视投影来给出茶壶深度.我的问题是,如何从"世界到相机"函数返回3D xyz顶点,并将其转换为2D坐标.我想在z = 0时使用投影平面,并允许用户使用键盘上的箭头键确定焦距和图像大小.

我在java中编程并设置了所有输入事件处理程序,并且还编写了一个处理基本矩阵乘法的矩阵类.我已经阅读了维基百科和其他资源一段时间,但我无法完全了解如何执行此转换.

java 3d graphics bezier

51
推荐指数
5
解决办法
9万
查看次数

为什么抽奖电话很贵?

假设纹理,顶点和着色器数据已经在显卡上,您不需要向卡发送大量数据.有几个字节来识别数据,可能是一个4x4矩阵,以及一些其他各种参数.

那么所有的开销来自哪里?操作是否需要与gpu进行某种握手?

为什么发送包含一堆小模型的单个网格,在CPU上计算,通常比发送顶点id和转换矩阵更快?(第二个选项看起来应该发送更少的数据,除非模型小于4x4矩阵)

3d graphics optimization performance gpu

50
推荐指数
2
解决办法
4万
查看次数

WPF 3D是复杂应用程序中DirectX和OpenGL的良好替代品吗?

我已经使用WPF的3D功能进行学习,并且在一些实现中,我发现它非常强大,而且我也在学习DirectX 11,与在WPF中使用3D类相比,它非常棘手.我只使用WPF 3D作为非常基本的东西,我的问题是:

WPF 3D是否同样适用于3D建模工具,游戏引擎和3D模拟等高级应用程序,以替代DirectX和OpenGL?

如果同一联赛中还有其他内容,请同时提及.

opengl directx 3d wpf graphics

50
推荐指数
3
解决办法
3万
查看次数