我有一个3元组数据集(X,Y,Z点),我想用R绘图.
我想从数据中创建一个曲面图,并在曲面图上叠加一个等高线图,以便创建轮廓图的印象,即从表面图中"阴影"或投影.等高线图将显示在曲面图下方.
我的数据集看起来有点像这样:
Axis | Data Type
-------------------
X | Date value
Y | Float value
Z | Float value
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我的场景中有很多物体,所以旋转所有物体都会很痛苦.那么在鼠标点击和拖动时最简单的移动相机来源的方法是什么?这样,场景中的所有灯光,物体都在同一个位置,所以唯一改变的是相机.Three.js没有提供围绕某个点旋转相机的方法,或者它是什么?
谢谢
回到白天很容易; 你制作了自己的3D东西,然后是DirectX,然后是OpenGL.对于.Net开发人员来说MDX很不错.然后XNA接管了MDX,但它不一样.XNA似乎非常以游戏为中心,包含固定模型和内容的所有内容流水线和预加载.
那么我们现在站在哪里?经过几天的研究/试验和错误,我觉得无处不在,我发现半开发的库,库有开销,严重的限制或过于复杂的库.
我想做"自由手"的3D东西.例如,在3D屏幕上显示200k点,并以30fps(Kinect深度图像)移动它们.我想制作3D屏幕保护程序,音频分析插件等.所有这些都不是内容管道的预制件,而且需要高性能.而且(嗯)我想从.Net那里做.
任何人都有图书馆的经验,这些图书馆既简单易懂又能提供相当大的自由和速度?
我一直在研究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的改进来解决这个问题.目前我将正常的计算结合到解决方案中,但结果也存在缺陷.
以下是我当前实施的预览:

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

区域光线垂直于表面并与之相交.表面上的每个碎片将始终返回表面和光相交的区域光上的最近点.由于曲面法线和顶点到光线矢量总是垂直的,因此它们之间的点积为零.随后,尽管在表面上隐藏着大面积的光,但漫射贡献的计算为零.
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 …
我在屏幕空间中有4个2D点,我需要将它们反向投影回3D空间.我知道4个点中的每一个都是3D旋转的刚性矩形的一个角,我知道矩形的大小.如何从中获取3D坐标?
我没有使用任何特定的API,我没有现有的投影矩阵.我只是在寻找基本的数学来做到这一点.当然没有足够的数据将单个2D点转换为3D而没有其他参考,但我想如果你有4个点,你知道它们在同一个平面上都是直角相交的,而且你知道它们之间的距离,你应该能够从中找出它.不幸的是,我无法解释如何.
这可能属于摄影测量的范畴,但谷歌搜索它并没有让我获得任何有用的信息.
我总是想知道这一点.在像GTA这样的游戏中,有数以万计的物体,一旦你在健康包上,游戏怎么知道呢?
每个对象都不可能有一个事件监听器?迭代也不好?我只是想知道它是如何实际完成的.
是否可以创建一个简单的3D模型(例如在3DS MAX中),然后将其导入Android?
我目前正在使用Bezier曲线和曲面来绘制着名的犹他州茶壶.使用16个控制点的Bezier贴片,我已经能够绘制茶壶并使用"世界到相机"功能显示它,这使得能够旋转生成的茶壶,并且目前正在使用正交投影.
结果是我有一个"扁平"茶壶,预计正投影的目的是保持平行线.
但是,我想使用透视投影来给出茶壶深度.我的问题是,如何从"世界到相机"函数返回3D xyz顶点,并将其转换为2D坐标.我想在z = 0时使用投影平面,并允许用户使用键盘上的箭头键确定焦距和图像大小.
我在java中编程并设置了所有输入事件处理程序,并且还编写了一个处理基本矩阵乘法的矩阵类.我已经阅读了维基百科和其他资源一段时间,但我无法完全了解如何执行此转换.
假设纹理,顶点和着色器数据已经在显卡上,您不需要向卡发送大量数据.有几个字节来识别数据,可能是一个4x4矩阵,以及一些其他各种参数.
那么所有的开销来自哪里?操作是否需要与gpu进行某种握手?
为什么发送包含一堆小模型的单个网格,在CPU上计算,通常比发送顶点id和转换矩阵更快?(第二个选项看起来应该发送更少的数据,除非模型小于4x4矩阵)
我已经使用WPF的3D功能进行学习,并且在一些实现中,我发现它非常强大,而且我也在学习DirectX 11,与在WPF中使用3D类相比,它非常棘手.我只使用WPF 3D作为非常基本的东西,我的问题是:
WPF 3D是否同样适用于3D建模工具,游戏引擎和3D模拟等高级应用程序,以替代DirectX和OpenGL?
如果同一联赛中还有其他内容,请同时提及.