问题标签 [ogre3d]

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 投票
1 回答
2203 浏览

windows - OGRE 引擎可以渲染到任何窗口吗?

我正在制作一个在内部使用 OGRE 的小型插件式图形引擎界面。这个想法是,在 Windows 或 Linux 中创建程序的人将能够使用我的插件来进行他们需要做的任何图形渲染。

事实上,已经有一个 Windows 应用程序使用 GDI 和 D3D 调用进行绘图,我需要对其进行修改,以便它可以使用 OGRE 进行绘图。

令我困惑的是,该应用程序是用 VC++ 编写的,因此具有 Windows 风格的菜单和用于绘图的客户区。但是由于 OGRE 创建了自己的渲染窗口,我是否可以将应用程序窗口的客户区的句柄发送给 OGRE,并且 OGRE 会在窗口的客户区完成所有绘图吗?

我是 Windows 编程的新手,而且有点时间限制,所以不得不在这里问。

0 投票
1 回答
11192 浏览

windows - 如何使用 Visual Studio 在 Windows 上构建 OGRE?

希望这可以帮助很多在 Windows 上安装 OGRE 的人。我做到了,我不想让其他人遭受同样程度的折磨。

我试图通过解释比其他网站解释更多的步骤和细节来使这种解释有所不同。其他人甚至都不会想到记录的问题和解决方案。

0 投票
3 回答
1847 浏览

c++ - Ogre 3d:RenderTexture 比 RenderWindow 大

我有两个食人魔应用程序:

1)子应用程序,渲染到窗口和纹理(使用相同的相机)。纹理被“导出”到共享内存(linux中的shm)

2)主应用程序,其中一个平面显示(1)“子应用程序”中发生的事情,从共享内存加载纹理。

(1) 渲染的纹理与 (2) 中平面使用的纹理具有相同的大小。例如:512x512

如果 RenderWindow 大于或等于 RenderTexture,则一切正常。您在 (1) 中看到的内容反映在 (2) 具有不错 fps 的平面中。共享内存很强大!

但是如果渲染窗口小于纹理,则只更新一部分纹理

这就是发生在我身上的事情: 渲染窗口小于渲染纹理

一些示例显示 1x1 窗口和大渲染纹理,所以我想渲染纹理可能比窗口大。

这是创建窗口的方式:

这是创建渲染纹理的方式:

这就是我更新渲染纹理的方式:

阅读 RenderWindow 和 RenderTexture 的描述,这不是我所期望的。那么......这是食人魔的错误,还是opengl?还是我做错了?

  • 操作系统:Linux
  • 食人魔:版本 1.7.3 (Cthugha)
  • GL_VERSION = 4.0.0 英伟达 256.53
0 投票
1 回答
3398 浏览

c++ - 在 ogre 中访问视口像素值

我正在使用 C++ 开发 Ogre 项目。通常我使用 viewport:setbackground() 但这会导致整个窗口的颜色相同。这次我想为每个视口的像素加载不同的 R、G、B 值。我的窗口是 600*600,我必须为每个像素加载 RGB 值。我该如何解决这个问题?

0 投票
2 回答
2445 浏览

c++ - 在 OGRE 中创建动态纹理时获得错误的 RGB

嗨,我在尝试创建动态纹理以在我的食人魔窗口中指定为背景时遇到问题。我想为纹理的每个像素动态分配值,然后将此纹理用作背景。我使用此代码创建动态纹理。

在这段代码中,我为每个值分配了蓝色( R:0 G:0 B:255 )。我希望获得完整的蓝色窗口,但我获得的不是蓝色背景,而是图片中看到的这个背景。 在此处输入图像描述

在我获得的纹理中,不是蓝色背景,而是有 3 种不同的颜色类型,它们总是依次重复。蓝色像素是真实的,但其他 2 种颜色也是蓝色的。我找不到导致此问题的原因。我能做些什么?什么是错误的部分?

0 投票
1 回答
1256 浏览

c++ - 如何获取和更改 OGRE 应用程序的帧率?

我正在开发 Ogre 应用程序,我将实时视图设置为窗口中的背景。但是,当我尝试使用 RenderTarget::getAverageFPS() 获取应用程序的帧速率然后我得到 19.7433 时,我有疑问。这是正确的帧速率吗?以及如何将此帧速率更改为例如 30fps 或 40fps ?

0 投票
1 回答
1209 浏览

ogre3d - 如何在食人魔中使用模板缓冲区掩码?

如何使用模板缓冲区在 OGRE 中创建蒙版?

也就是说,一些对象应该首先渲染到模板缓冲区并生成一个掩码(比如 0 是背景,0xFF 是前景);然后渲染场景本身,使用模板缓冲区作为掩码,因此只渲染它为 0xFF 的像素。

我想我应该使用 RenderQueueListener,但我不能让它工作。这就是我现在正在做的事情:

我将应该渲染到模板缓冲区的实体设置为:

我究竟做错了什么?在 Ogre 中如何做到这一点的任何例子?谢谢!

作为参考,这是我在纯 OpenGL 中的操作方式:

0 投票
1 回答
771 浏览

ogre3d - 默认情况下的ogre3d材质?

我已经看到,当您将一些模型添加到 *scene_manager* 时,它们的纹理默认存在,您不需要设置setMaterialName。这怎么样?它是在网格中还是在自动分配的某个材质名称中?

0 投票
3 回答
1783 浏览

c++ - 加载opencv帧时,Ogre中的loadRawData内存问题

我正在使用 OpenCV 实时捕获图像,并且我想在 OGRE 窗口中将这些图像显示为背景。因此,对于每一帧,背景都会改变。

我正在尝试使用MemoryDataStreamwithloadRawData将图像加载到 OGRE 窗口中,但出现以下错误:

OGRE EXCEPTION(2:InvalidParametersException):流大小与 ../../../../../OgreMain/src/OgreImage.cpp 处的 Image::loadRawData 中计算的图像大小不匹配(第 283 行)

图像来自 OpenCV,大小为 640x480,frame->buffer属于MatOpenCV 2.3 中的一种。此外,我在 OpenCV 中使用的像素格式是CV_8UC3(即每个像素是 8 位,每个像素包含 3 个通道 (B8G8R8))。

为什么我总是得到这个内存错误?

0 投票
3 回答
1916 浏览

visual-c++ - Ogre3d 错误:无法打开文件 OgreMain_d.lib

这是我在尝试构建 Ogre3D 应用程序时遇到的错误(步骤从这里开始)。

我已经将所有内容都跟踪到了 T,但我仍然收到错误消息。老实说,它不应该发生。我也从这里开始关注一切。

编辑

发生的事情是有两个不同的文件,一个用于发布,另一个用于调试。我需要一个调试模式才能正确编译(即OgreMain_d.lib)。