问题标签 [rendering]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
6736 浏览

3d - 在工程应用程序中进行实时 3D 渲染的最佳方式是什么?

我们正在开发一个基于 GIS 的应用程序,它在虚拟现实环境中模拟真实的世界对象(即管道、道路等) 。目前我们使用ESRI ArcGIS包中的ArcScene进行3D 渲染,未来我们打算将其替换为我们自己的 3D 环境。

问题: 在上述应用程序中进行实时 3D 渲染的最佳方式是什么?我在这个领域没有任何经验,我真的很困惑。我应该使用一种可用的 3D 渲染引擎(下面列出的一些)吗?如果答案是肯定的,那么应该考虑哪些参数(无论其成本如何)?有没有人在这个领域有任何经验或建议?

情况和必要性:

  1. 我们使用 C# .NET 环境来开发应用程序
  2. 有大量的 3D 对象要显示
  3. 3D 对象分组在不同的 CAD 文件中
  4. 与最终 3D 场景的交互至关重要(例如选择一个 3D 对象)
  5. 需要加载、卸载、打开、关闭和设置一层和/或对象的透明度。
  6. 具有高细节的广泛模型(超过 800 公顷区域)的高性能实时渲染(从道路到非常精细的物体,如一颗螺丝钉)
  7. 不需要提前着色问题(此时)
  8. 纹理必须适用

Rendring Engines: 经过一番搜索,我找到了以下 3D 渲染解决方案:

  1. CadFaster|Engine:“CadFaster|Engine 是一种独特且最具可扩展性的 3D 渲染解决方案,适用于技术应用程序。它比普通 CAD 应用程序快十倍以上。该引擎包括获得专利的 3D 数据集和几何图形实时同步机制,允许自动集成到主应用程序。CadFaster|Engine 还包含获得专利的实时多边形缩减,可提高 3D 性能。引自 DevMaster

  2. Quest3D:“使用 Quest3D 创建软件、网络和模拟器。Quest3D 是建筑可视化、产品可视化、数字娱乐、计算机辅助培训和高端 VR 应用程序的完美解决方案。” 引自 Quest3D 介绍

  3. OpenSceneGraph:“OpenSceneGraph 是一个开源的高性能 3D 图形工具包,应用程序开发人员在视觉模拟、游戏、虚拟现实、科学可视化和建模等领域使用。完全用标准 C++ 和 OpenGL 编写......。OpenSceneGraph 是现已确立为世界领先的场景图技术,广泛应用于 vis-sim、太空、科学、油气、游戏和虚拟现实行业。主要语言:C/C++ 语言封装:C#,...。引用自 OSG 主页。

  4. DevMaster3DLinks上还有一个几乎完整的可用引擎列表

0 投票
1 回答
3657 浏览

apache-flex - 格式化 AdvancedDataGrid 单元格

我有一个关于渲染高级数据网格单元格的快速问题。

我需要根据条件以编程方式为数据网格的单元格着色。比方说,股票报价。如果比前一天增加,我需要在减少时将单元格涂成绿色和红色。

现在,重要的部分是,我需要动态地做这些事情,这意味着,当用户启用比较/条件时,单元格就会被着色。当用户禁用比较时,它会再次回到默认行为。

我知道我必须使用渲染器。但不确定,如何将它用于单元格,并且过于动态。谁能解释一下如何去做?

谢谢

0 投票
5 回答
1137 浏览

3d - 3D 渲染 - 这个问题叫什么?

希望这次是一个明智的问题......

在图片中看到上半部分的纹理看起来不错,但下半部分(在旋转一点之后)纹理正在分解,你可以看到形状的内部吗?多边形消失了?

这个问题叫什么?我需要知道,所以我知道修复它时要寻找什么!

顺便说一句,我正在 Papervision 中执行此操作。如果你有机会知道解决方法(或者如果可能的话),如果你能指出我正确的方向,我会允许你对自己感觉特别好。

这个叫什么?

多谢!

0 投票
1 回答
3676 浏览

c++ - 行进立方体问题

我目前正在编写一个程序来使用 C++ 和 Opengl 实现 Marching Cube。

但是,我最好的参考仅来自http://local.wasp.uwa.edu.au/~pbourke/geometry/polygonise/

在网络上,提供的代码是用 C 编写的。
我的问题是我不了解 triTable 和 edgeTable
以及它们之间的关系。

谁能帮助我解释或指导我将算法转换为代码?

0 投票
1 回答
1071 浏览

opengl - 多重纹理时OpenGL基元太暗?

当我在场景的其他地方使用多重纹理时,我无法获得准确的原始颜色。基本上,我尝试在视频纹理上渲染一些线条和多边形(我正在使用 3 阶段多重纹理来创建视频纹理)......无论如何,我知道问题与 alpha 无关......事实上,我知道在我的纹理更新函数中,如果我只是注释掉对纹理级别 1 和 2 的 glBindTexture() 调用,原始颜色很好(所以保留纹理级别 0)......它是否也在尝试对原始颜色进行多纹理处理(即使我显然没有为基元设置纹理坐标)?

0 投票
1 回答
2179 浏览

java - 如何在全局范围内设置 RenderingHints?

对于 Java 应用程序,我可以在全局基础上设置 RenderingHints 吗?目前,我已经在 paintComponent 方法中定义了这些,如下所示。但是,我更愿意在应用程序启动时设置它们一次,并让它们在整个会话期间持续存在。

谢谢。

0 投票
3 回答
10899 浏览

c++ - 实施行进立方体算法?

来自我的最后一个问题:Marching Cube Question

但是,我仍然不清楚,如:

  1. 如何创建虚构的立方体/体素来检查顶点是否低于等值面?
  2. 我怎么知道哪个顶点在等值面下方?
  3. 每个立方体/体素如何确定使用哪个立方体索引/曲面?
  4. 如何使用 triTable 中的数据绘制表面?

假设我有一个苹果的点云数据。
我该如何进行?

熟悉Marching Cube的人可以帮助我吗?
我只知道 C++ 和 opengl。(c 有点失控)

0 投票
2 回答
9592 浏览

iphone - Rendering UIView with its children

I have a UIView that has an image and some buttons as its subviews. I'd like to get a "snapshot" image of it using renderInContext, or other method.

If I pass it my UIView (as above) then I get a blank bitmap. None of the children are rendered into the bitmap.

If I pass it the child view that is the image, then I get an image of that bitmap, and, unsurprisingly, none of its siblings (buttons).

I was sort of hoping that renderInContext would take the image and all it's visible children and render it into a bitmap. Has anyone have any ideas how to do this?

0 投票
1 回答
3827 浏览

java - Java 交叉影线纹理

知道如何在 Java 中重新创建交叉散列纹理吗?下面的 C# 代码显示了如何为 .NET 框架完成此操作。Java 代码片段很接近,但我无法将线条正确旋转 45 度。

C#

爪哇

提前致谢。

0 投票
2 回答
6669 浏览

wpf - WPF 使用 BitmapSource 渲染性能

我创建了一个 WPF 控件(从 FrameworkElement 继承),它显示一个可以平移的平铺图形。每个图块为 256x256 像素,24bpp。我已经覆盖了 OnRender。在那里,我加载任何新的图块(作为 BitmapFrame),然后使用drawingContext.DrawImage 绘制所有可见的图块。

现在,只要每个渲染周期有多个新图块,帧率就会从 60fps 下降到零大约一秒钟。这不是由加载图像(以毫秒为单位)引起的,也不是由 DrawImage 引起的(它根本不需要时间,因为它只是填充了一些中间渲染数据结构)。

我的猜测是,每当渲染线程获得大量(~20)新的 BitmapSource 实例(即,它尚未缓存的实例)时,它本身就会阻塞。要么花费大量时间将它们转换为某些内部 DirectX 兼容格式,要么可能是缓存问题。它不能用完视频 RAM;Perforator 显示峰值低于 60MB,我有 256MB。此外,Perforator 说所有渲染目标都是硬件加速的,所以也不是这样。

任何见解将不胜感激!

提前致谢

丹尼尔

@RandomEngy:
BitmapScalingMode.LowQuality 稍微减少了问题,但并没有摆脱它。我已经在以预期的分辨率加载图块。而且它不能是最新的图形驱动程序(Nvidia)。
得知缩放需要这么多时间,我有点惊讶。按照我的理解,位图(无论其大小)只是作为 Direct3D 纹理加载,然后进行硬件缩放。事实上,一旦位图第一次被渲染,我可以改变它的旋转和缩放,而不需要进一步的冻结。