我们正在开发一个基于GIS的应用程序,它模拟虚拟现实环境中的真实单词对象(即管道,道路等).目前我们使用ArcScene中从ESRI的ArcGIS包3D渲染,并在今后,我们打算用我们自己的3D环境来取代它.
问题: 在上述应用程序中进行实时3D渲染的最佳方法是什么?我在这个领域没有任何经验,我真的很困惑.我应该使用一个可用的3D渲染引擎(下面列出一些)吗?如果答案是肯定的,那么应考虑哪些参数(不论其成本如何)?有没有人在这个领域有任何经验或建议?
环境和必需品:
Rendring Engines: 经过一番搜索,我找到了以下3D渲染解决方案:
CadFaster |引擎:"CadFaster |引擎是一种独特且可扩展性最高的3D渲染解决方案,适用于技术应用.它比通常的CAD应用程序快十倍.该引擎包括用于3D数据集和几何的专利实时同步机制.允许自动集成到主应用程序.CadFaster | Engine还包含专利的实时多边形缩减,可提高3D性能." 引自DevMaster
Quest3D:"使用Quest3D创建软件,Web和模拟器.Quest3D是架构可视化,产品可视化,数字娱乐,计算机辅助培训和高端VR应用的完美解决方案." 引自Quest3D的介绍
OpenSceneGraph:"OpenSceneGraph是一个开源的高性能3D图形工具包,应用程序开发人员在视觉模拟,游戏,虚拟现实,科学可视化和建模等领域使用.完全用标准C++和OpenGL编写...... OpenSceneGraph是现已成为世界领先的场景图技术,广泛应用于视觉,空间,科学,石油天然气,游戏和虚拟现实等行业.主要语言:C/C++语言包装:C#,...... 从OSG主页引用.
所以我已经将代码升级到ipad(即转换为通用应用程序).但是,对于IOS4,UIAlertview渲染似乎已关闭.它不是位于中间位置,而是向上跳跃并显示在顶部,一半的盒子被切断.横向也是如此.
我的理解是UIalertview始终位于中间?我查看了代码,但没有在代码中的任何位置设置框架/位置.这只发生在4.0,在iphone 4和运行4.0的itouch上.其他每个版本都很好,包括ipad.有什么想法吗?
谢谢.
我在Mathematica 7.0.1中Mesh生成的3D表面上渲染线条时遇到问题:ContourPlot3D
p=ContourPlot3D[x^4+y^4+z^4-(x^2+y^2+z^2)^2+3(x^2+y^2+z^2)==3,
{x, -2,2}, {y, -2, 2}, {z,-2,2},
BoundaryStyle->Directive[Black,Thickness[.003]],
ContourStyle->Directive[Orange,Opacity[0.5],Specularity[White,300]],
PlotPoints->90,Ticks->None,
MeshStyle->Directive[GrayLevel[.7],Thickness[.001]],
Lighting->{{"Directional",RGBColor[1,1,1],
{ImageScaled@{1,0,1},ImageScaled@{0,0,0}}}}];
p=Graphics[Inset[p,{0,0},Center,{1,1}],
PlotRange->{{-.5,.5},{-.5,.5}},Frame->True]
Run Code Online (Sandbox Code Playgroud)

仔细看看它们:
Show[p, PlotRange -> {{-.16, -.05}, {0, .1}}]
Run Code Online (Sandbox Code Playgroud)

您会看到灰色Mesh线条在许多地方与表面形成三角形重叠,甚至看起来是虚线.有办法避免这种情况吗?
3d rendering wolfram-mathematica vector-graphics mathematica-frontend
我正在开发一个项目,将一些渲染卸载到我为Unity编写的本机插件中,以便利用实例化和其他高级图形功能.我正在为跨平台版本开发它,但我使用Mac,因此主要使用OpenGL进行测试.此时,插件仅向屏幕中心呈现四边形,并以十六进制值着色.该插件在一个空白的Unity项目中按预期工作,但只要我将其合并到我的Oculus项目中,它就会开始表现不正常.
在Rift中,插件的几何绘制两次,一次在两只眼睛上伸展,另一次只在右眼的范围内绘制.此外,我应用于几何体的任何原始颜色都会丢失,几何体似乎会拾取周围的颜色; 在带有红色文字的黑色屏幕上,几何体将大部分为黑色,并且有一些红色渗透到线条中.加载绿色地形后,插件绘制的几何图形变为绿色.
下面是在空白的Unity项目中绘制的几何图形的屏幕截图,其中没有其他内容:

以下是我的Oculus Rift应用程序上绘制的相同几何图形的屏幕截图:

这是我正在渲染的顶点的创建(三个坐标和颜色):
Vertex verts[4] =
{
{ -0.5f, 0.5f, 0, 0xFF0000ff },
{ 0.5f, 0.5f, 0, 0xFFff0000 },
{ 0.5f, -0.5f, 0, 0xFF00ff00 },
{ -0.5f, -0.5f, 0, 0xFFff0000 },
};
Run Code Online (Sandbox Code Playgroud)
这是绘图函数,称为插件中的每个帧:
// OpenGL case
if (g_DeviceType == kGfxRendererOpenGL)
{
//initialize model view matrices
glMatrixMode (GL_MODELVIEW);
float modelMatrix[16] =
{
1,0,0,0,
0,1,0,0,
0,0,1,0,
0,0,0,1,
};
glLoadMatrixf (modelMatrix); //assign our matrix to the current MatrixMode
//initialize projection matrix
glMatrixMode (GL_PROJECTION);
projectionMatrix[10] = 2.0f; //tweak projection matrix …Run Code Online (Sandbox Code Playgroud) 有人可以帮我弄清楚哪些动作会触发"更新图层树"动作?"更新图层树"对页面加载持续时间有什么影响?
我的戴尔2709w显示器最近开始表现得很奇怪.在某些页面上,它会呈现不同的颜色,而不应该呈现.
它只能在外部显示器上执行此操作,而不是Macbook本身.它只是在铬.safari和firefox不这样做.
我正在运行macOS Sierra
那些光点不应该在那里!
我有一个项目列表,其中包含的数据不足以生成唯一键。如果我使用 uuid 库生成 ID,单个项目的更改是否也会导致其他项目重新呈现,因为它们的密钥每次都会更改?
const people = [
{
gender: 'male',
firstName: 'david',
},
{
gender: 'male',
firstName: 'david',
},
{
gender: 'male',
firstName: 'joe',
},
]
const renderPeople = () => {
return people.map(person => {
return (
<div key={uuid.v4() /* a new value each time? */ }>
<p>{person.gender}</p>
<p>{person.firstName}</p>
</div>
)
})
}
Run Code Online (Sandbox Code Playgroud)
一段时间后......其中一个大卫改变了
const people = [
{
gender: 'male',
firstName: 'david',
},
{
gender: 'male',
firstName: 'davidzz',
},
{
gender: 'male',
firstName: 'joe',
},
]
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个动画来向学生展示如何用动画表示数据。运行下面的代码
library(ggplot)
library(gganimate)
library(carData)
anim <- ggplot(mtcars, aes(mpg, disp)) +
transition_states(gear, transition_length = 2, state_length = 1) +
enter_fade() +
exit_fade()
animate(anim)
Run Code Online (Sandbox Code Playgroud)
我期待预览窗口上的动画和 gif 图像的创建。
相反,我得到的是工作目录中的 100 个 .png 文件,但没有别的。图片是正确的,是动画的帧,只是没有被函数拼凑起来。特别是我得到了 100 个元素,其中我在这里显示了第一个元素:这个列表
[1] "./gganim_plot0001.png" "./gganim_plot0002.png" "./gganim_plot0003.png"
[4] "./gganim_plot0004.png" "./gganim_plot0005.png" "./gganim_plot0006.png"
[7] "./gganim_plot0007.png" "./gganim_plot0008.png" "./gganim_plot0009.png"
[10] "./gganim_plot0010.png" "./gganim_plot0011.png" "./gganim_plot0012.png"...
Run Code Online (Sandbox Code Playgroud)
和
attr(,"frame_vars")
frame nframes progress transitioning previous_state closest_state
1 1 100 0.01 FALSE 3 3
2 2 100 0.02 FALSE 3 3
3 3 100 0.03 FALSE 3 3
Run Code Online (Sandbox Code Playgroud)
和
next_state
1 …Run Code Online (Sandbox Code Playgroud) 互联网上有一个 gif,其中有人使用某种 CAD 并在其中绘制了多个矢量图片。在第一帧中,他们放大了一个小点,显示出一个全新的不同比例的矢量图片,然后他们继续放大另一个小点,显示另一张详细的图片,重复几次。这是 gif 的链接
或另一个类似的示例:假设您有一个时间序列,每个样本的粒度为 1 毫秒,然后缩小以显示数年的数据。
我的问题是:当大量数据最终混叠成单个像素时,如此精细的数据最终如何呈现。
您是否必须通过整个数据集来渲染该像素(即在时间序列的情况下:通过数百万条记录将它们平均为 1 行,或者在 CAD 渲染整个矢量图片并将其模糊成小点的情况下) ,或者可以应用某些详细级别的优化,这样您就不必这样做了?
如果是这样,它们是如何工作的?在哪里可以了解它?
像 Transform 小部件这样的小部件可以轻松地在 Flutter 中缩放、平移和倾斜小部件。但没有明显的方法可以直接扭曲或扭曲图像。
以这个扭曲的例子为例:
假设此小部件是一个容器,其子部件为装饰图像和文本小部件。在这里,小部件不会被贝塞尔曲线或路径剪切。小部件被“拉伸”或扭曲。使用 Container 小部件可能无法实现这一点,但可以使用 CustomPainter 来完成吗?
另外,看一下这个例子:
这里使用波纹效果扭曲图像。是否有可能使用 Flutter 来复制它?