问题标签 [openscenegraph]

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 投票
5 回答
11499 浏览

c++ - 在多线程 C++ 应用程序中,我是否需要互斥锁来保护简单的布尔值?

我有一个多线程 C++ 应用程序,它使用 OpenSceneGraph 库进行 3D 渲染。我计划使用 boost::threads 将 OSG 的渲染循环作为一个单独的线程启动,将包含共享状态的数据结构传递给线程。我试图避免任何过于重量级的东西(如互斥锁)进行同步,因为渲染循环需要非常紧凑,而 OSG 本身试图避免必须锁定。大多数共享状态是在线程启动之前设置的,并且永远不会改变。我确实有一些需要更改的数据,我计划对其进行双重缓冲。但是,我有一个简单的布尔值,用于指示线程暂停渲染,然后恢复渲染,以及另一个来终止它。在这两种情况下,应用程序线程都会设置布尔值,而渲染线程只读取它。我需要同步对这些布尔值的访问吗?据我所知,可能发生的更糟糕的事情是渲染循环在暂停或退出之前继续进行额外的帧。

0 投票
2 回答
705 浏览

c++ - OpenSceneGraph 应用程序中的无效锁定序列错误

我有一个针对 OpenSceneGraph (2.6.1) 构建的应用程序,因此间接针对 OpenGL。应用程序初始化并开始运行,但随后在 OpenGL32.dll 中出现以下异常“尝试执行无效的锁定序列”。当我重新运行它时,有时会收到此异常,有时还会收到有关“特权指令”的异常。调用堆栈看起来已损坏,因此我无法准确判断异常是从哪里引发的。几天前我运行了该应用程序,但从未见过这种行为。从那时起,我在几个 if 中添加了 else 子句,仅此而已。我的应用程序是一个控制台应用程序,使用 Visual Studio 2008 构建,并将 OpenScenGraph 设置为 SingleThreaded 模式。有人见过这个吗?有什么调试技巧吗?

0 投票
4 回答
1974 浏览

opengl - 在 OpenSceneGraph 中禁用纹理

我需要在 OSG 中完全禁用纹理。我尝试glDisable(GL_TEXTURE_2D)并使用了 osg::stateSet,但是一些具有纹理的节点仍然呈现它们的纹理。有没有办法全局关闭纹理?

一点背景知识:我需要为一个场景生成一个对象覆盖图,也就是说,知道是什么对象产生了每个可见像素。我用平面颜色渲染每个对象并读回颜色缓冲区 - 这就是为什么纹理会破坏我正在尝试做的事情。关于如何实现这一点的任何其他想法?

0 投票
11 回答
12343 浏览

graphics - 程序员的 3D 建模

我正在学习计算机图形学作为我大学课程的一部分。该课程侧重于场景建模,而不是渲染或计算机图形的其他方面。我们正在学习它背后的数学和 OpenSceneGraph 来实际运行一些东西。

作为硬件的一部分,也出于纯粹的兴趣,我需要创建一个 3D 模型,在这方面我有艺术自由。我也可以自由地直接在代码中对其进行建模,或者在我选择的工具中加载我所做的模型。

问题是,我不擅长视觉艺术——我有很多好主意,但不知道如何为它们建模。我也不能很好地画画或素描。但是,我希望能够做CG。

你会建议我如何处理 3D 建模?

谢谢,
阿萨夫

编辑:有些人对此投了反对票(不发表评论)。让我强调一下——我是一名程序员,我想熟悉一门与我们相邻的艺术。毫无疑问,这是一个与编程相关的问题。

编辑2:感谢所有回答的人。在查看您建议的替代方案后,我将选择我接受的答案。对于(预期的)延迟,我深表歉意。

结论:

  • 我决定研究 Blender。我正在研究Ruben Steins 提到的一些视频教程。
    谢谢鲁本
  • 我确实快速浏览了MilkShape 3D,如果我发现 Blender 无法满足我的需求,或者我目前的学习“预算”(时间、注意力),我会使用它。
    谢谢m3rLinEz
  • 在我学习了一些基本技能之后,我打算听从Mastermind的建议。
    谢谢主谋
  • 当我完成一些 3D 艺术,并准备好提高我的技能时,我会去参观那些地方已张贴。
    也谢谢你,fa。

感谢所有花时间回复的人,以及所有思想开明的人,他们不会对编程(而不是代码)相关问题投反对票。

0 投票
2 回答
3023 浏览

c++ - 坐标变换 C++

我有一个网络摄像头倾斜地指向一张桌子,并用它跟踪标记。我在 OpenSceneGraph 中有一个 transformationMatrix,它的转换部分包含从跟踪对象到相机的相对坐标。因为相机是倾斜的,所以当我在桌子上移动标记时,Y 和 Z 轴会更新,尽管我想要更新的是 Z 轴,因为标记的高度不会只改变它到相机。当在 OpenSceneGraph 中的标记上投影模型时,这会产生影响,模型稍微偏离并且当我移动标记周围的 Y 和 Z 值时更新不正确。

所以我的猜测是我需要一个变换矩阵,将每个点与它相乘,这样我就有一个新的坐标系,它位于桌子表面上。像这样: A * v1 = v2 v1 是相机坐标,v2 是我的“表格坐标” 所以我现在所做的是选择 4 个点来“校准”我的系统。所以我将标记放在屏幕的左上角,并将 v1 定义为当前相机坐标,将 v2 定义为 (0,0,0),我对 4 个不同的点进行了此操作。然后利用我从未知矩阵和两个已知向量中得到的线性方程来求解矩阵。

我认为我将为矩阵获得的值将是与相机坐标相乘所需的值,因此模型将在标记上正确更新。但是当我将之前收集的已知相机坐标与矩阵相乘时,我没有得到任何接近我的“表格坐标”的东西。

我的方法完全错误吗,我只是把方程式弄乱了吗?(在 wolframalpha.com 的帮助下解决)有没有更简单或更好的方法来做到这一点?任何帮助都将不胜感激,因为我有点迷茫并且在一些时间压力下:-/谢谢,大卫

0 投票
2 回答
1298 浏览

model - 增强现实游戏引擎

对于一个增强现实项目,我想显示一个高分辨率的实时摄像机源。然后在此之前,我想显示一个可以实时操作(翻译、拉伸等)的模型。

我本来打算使用OpenSceneGraph,但我意识到要让这些操作正常工作需要做很多工作。所以我更喜欢更高级的解决方案。

任何人都可以根据他们的经验推荐支持上述功能的游戏引擎吗?还是一种与 CAD 应用程序交互来实现此目的的方法?

0 投票
1 回答
85 浏览

methods - 需要行动计划来升级公司应用程序中的图形工具包

我的工作是将我们所有使用 OpenSceneGraph(一个 openGl 工具包)版本 0.9.9 的应用程序升级到最新最好的 2.8。好吧,这项任务有很多警告:

1.) 在 .9.9 版之后,对核心 OpenSceneGraph (OSG) 进行了大修。添加和删​​除常用函数和类。简而言之,我不能只是用新的替换旧的并修改一些已弃用或删除的功能 - 有很多需要更改。

2.) 我们的应用程序是使用 Visual Studio 2003 中的 MFC 构建的。他们希望我坚持使用它进行升级。

3.) 我的 OSG 特定场景的组织良好的文档似乎不可能找到,而且充其量是无组织和分散的。

我的问题是:解决这个问题的详细方法是什么。我有大约两周的时间来升级其中一个应用程序。然后计划在其余应用程序中遵循并应用此方法。对我来说,最大的障碍是找到一个起点。在我从事的大多数项目中,我可以轻松地直接挖掘并通过手头的一些组织和计划来解决问题。这似乎是一个更复杂的问题,需要更准确和精确的行动计划。非常感谢您的想法和建议。

0 投票
3 回答
2953 浏览

import - 从 OpenCascade 导出,导入到 OpenSceneGraph

我们有一个使用 OCC 的建模工具和一个使用 OSG 的 3d 编辑器。我想要做的是,从第一个工具中导出模型并导入到第二个工具中。我已经在网上搜索了几天,但我找不到解决方案。

三件事可以解决我的问题:

  1. OCC 的导出器,用于导出为 OSG 支持的格式(.ive、.osg 等),
  2. OSG 的导入器,用于从 OCC 支持的格式(.stp、.step、.igs、.iges、.brp、.brep)导入,
  3. 一种转换工具,用于在两种格式之间进行转换,一种是 OCC 支持的格式,一种是 OSG 支持的格式。

以前有没有人这样做过,或者知道有什么可以帮助的?

我试图避免为 OCC 编写自定义导出器。

0 投票
1 回答
3698 浏览

c++ - 如何让 cmake 的 PKG_CHECK_MODULES 在 Windows 中找到我的 cairo 库

我正在尝试在 win32 机器上构建 OpenSceneGraph 的 pdf 插件。该插件使用 cmake 的 PKG_CHECK_MODULES 宏来查找 cairo 和 poppler 库。我不知道如何安装这些以帮助它找到它们。

0 投票
2 回答
2410 浏览

file - 用于opengl的3DS文件加载器

这是我在网站上的第一个问题。我需要一个用于 opengl 应用程序的 3DS 模型加载器。加载器还应该能够加载 .jpg 纹理。为此,我尝试使用 OpenSceneGraph,但这次我还必须使用整个 OpenSceneGraph 数据结构来渲染场景。是否可以仅将 OpenSceneGraph 用于模型加载并使用标准的 opengl 代码完成其余的工作,尤其是 glTranslate、glRotate 等。