[SOLVED]:Rendering to texture, limitations !

Problems building or running the engine, queries about how to use features etc.
User avatar
paul424
Gnome
Posts: 377
Joined: Thu May 24, 2012 7:16 pm
x 18

[SOLVED]:Rendering to texture, limitations !

Post by paul424 »

Ogre Version: : 13 6 5
Operating System: :Linux Tumbleweed:
Render System: :OpenGL3+
So far I managed to proceduraly generate a fog of war texture ..... by creating an ortho camera, a plane with proper material , and rendering to texture....
But it turns out I am limited to texture size by actual render Window resolution, which was created much earlier.... That is --- when I try to generate a texture 4096x4096 I get a rectangle of size 1920x1200, and default buffer color around it. I have read that modern OpenGL and Direct3d allows to create textures of the size as large as one wish ( memory being the limit). So why is that ?

Code: Select all

    Ogre::SceneManager* mSceneManagerPerlin = Ogre::Root::getSingletonPtr()->createSceneManager("OctreeSceneManager", "perlinSceneManager");
    Ogre::TexturePtr perlinTexture = Ogre::TextureManager::getSingleton().createManual(
        "PerlinNoiseTexture",
        Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME,
        Ogre::TEX_TYPE_2D,
        1024, 1024,
        0,
        Ogre::PF_R8G8B8A8,
        Ogre::TU_RENDERTARGET
        );
    Ogre::RenderTexture* renderTexture;
    Ogre::RenderWindow* renderWindow;
    // Attach a camera and viewport to render the texture
    renderTexture = perlinTexture->getBuffer()->getRenderTarget();
    Ogre::Camera* camera = mSceneManagerPerlin->createCamera("PerlinNoiseCam");
    camera->setProjectionType(Ogre::PT_ORTHOGRAPHIC);
    camera->setOrthoWindow(1024, 1024);
    Ogre::SceneNode* cameraNode = mSceneManagerPerlin->getRootSceneNode()->createChildSceneNode();
    cameraNode->attachObject(camera);
    cameraNode->setPosition(0,0,1000);
    cameraNode->lookAt(Ogre::Vector3(0,0,0), Ogre::Node::TS_WORLD);    
// renderWindow = Ogre::Root::getSingletonPtr()->createRenderWindow("perlinNoiseWindow",1024,1024, true, {}); // renderWindow->addViewport(camera);
Ogre::Viewport* viewport = renderTexture->addViewport(camera); // viewport->setDimensions(0, 0, 1, 1); viewport->setClearEveryFrame(true); viewport->setBackgroundColour(Ogre::ColourValue::Black); viewport->setOverlaysEnabled(false); // Create a quad Ogre::Plane plane(Ogre::Vector3::UNIT_Z, 0); Ogre::MeshManager::getSingleton().createPlane( "Plane", Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, plane, 1024, 1024, 1, 1, true, 1, 1, 1, Ogre::Vector3::UNIT_Y); Ogre::Entity* quadEntity = mSceneManagerPerlin->createEntity("Plane"); quadEntity->setMaterialName("CloudGenerate", "Graphics"); Ogre::SceneNode* quadNode = mSceneManagerPerlin->getRootSceneNode()->createChildSceneNode(); quadNode->attachObject(quadEntity); // quadNode->setPosition(-2048, -2048, -1000); mSceneManagerPerlin->setAmbientLight(Ogre::ColourValue(.5, .5, .5)); //renderWindow->update(); renderTexture->update();

There was similar post on stackoverflow , but regarding OGRE 1.7 from 10 years ago !
https://stackoverflow.com/questions/793 ... nderwindow

But if render window is smaller than texture, only a part of texture is updated.

Exactly this is to be expected and indeed the correct behaviour. Pixels of regular on-screen windows are only processed if they pass the so called pixel ownership test. What this means is, that only those pixels that will be visible to the user will be rendered at all. So if for example you drag a window in front of your OpenGL window, those pixels will not be rendered to either; on modern systems so called compositing window management is used, where obstruction by window will not fail the pixel ownership test.

To make a long story short: If you're rendering stuff for later processing you must do it on a framebuffer fully under your control: A PBuffer or a Frame Buffer Objec

@paroj what is the current way of bypass this limitation in Ogre 13.6.5 ? :)

Here's the picture of saved texture to png file : ( Don't mind the pattern, just notice the rectangle on white .... )

Image

Last edited by paul424 on Wed Sep 11, 2024 12:20 pm, edited 1 time in total.
User avatar
dark_sylinc
OGRE Team Member
OGRE Team Member
Posts: 5433
Joined: Sat Jul 21, 2007 4:55 pm
Location: Buenos Aires, Argentina
x 1341

Re: Rendering to texture, limitations !

Post by dark_sylinc »

Hi.

Your picture is not loading. There seems to be something wrong with postimage. Could you try another service like imgur?

what is the current way of bypass this limitation in Ogre 13.6.5 ?

As long as you selected FBO (instead of pbuffer; assuming this option still even exists Ogre 13.6.5) this ancient limitation should not apply to you.

Something else must be going on. But since I can't see your picture, I don't understand what the problem is.

User avatar
paul424
Gnome
Posts: 377
Joined: Thu May 24, 2012 7:16 pm
x 18

Re: Rendering to texture, limitations !

Post by paul424 »

For some reaon this function does not respect alpha channel, leaving it empty or fully opaque ...

Code: Select all

// Function to save PerlinNoiseTexture to an image file
void RenderManager::saveTexture(Ogre::TexturePtr texture, const std::string& filename) {
    Ogre::HardwarePixelBufferSharedPtr pixelBuffer = texture->getBuffer();
    Ogre::Image image;

pixelBuffer->lock(Ogre::HardwareBuffer::HBL_READ_ONLY);
const Ogre::PixelBox& pixelBox = pixelBuffer->getCurrentLock();

image.loadDynamicImage(static_cast<Ogre::uchar*>(pixelBox.data), texture->getWidth(), texture->getHeight(),
                       1, texture->getFormat(), false);

image.save(filename);

pixelBuffer->unlock();
}

This picture is fine -- just download it on disc and in GIMP disable alpha channel. It should show you a pattern of texture 1920x1200 rectangle in the upper left corner , leaving the rest texture black or empty ...

https://imgur.com/GtquViJ

User avatar
paul424
Gnome
Posts: 377
Joined: Thu May 24, 2012 7:16 pm
x 18

Re: Rendering to texture, limitations !

Post by paul424 »

Here;s a better texture example :

https://imgur.com/9M5G20Y

User avatar
paul424
Gnome
Posts: 377
Joined: Thu May 24, 2012 7:16 pm
x 18

Re: Rendering to texture, limitations !

Post by paul424 »

I try to move the error into some compact program, so it could be shared , but whatever I do with Ogre::Bites the result is always correct !!! :(
Seems that something congenital to OpenDungeons code base ....

User avatar
dark_sylinc
OGRE Team Member
OGRE Team Member
Posts: 5433
Joined: Sat Jul 21, 2007 4:55 pm
Location: Buenos Aires, Argentina
x 1341

Re: Rendering to texture, limitations !

Post by dark_sylinc »

Maybe RenderDoc can help you spot the problem?

User avatar
paul424
Gnome
Posts: 377
Joined: Thu May 24, 2012 7:16 pm
x 18

Re: Rendering to texture, limitations !

Post by paul424 »

Hello, I have hard time starting ANY ogre application with RenderDoc.... How do I start and Pause it and then see frame by frame what the program is doing ..... The RD does not seems to start correctly either Opendungeons-plus nor the small programs I wrote for myself..... Are there any tips and tricks ... I don't even see how one could choose that I need an OpenGL 3+ debugging.

User avatar
paul424
Gnome
Posts: 377
Joined: Thu May 24, 2012 7:16 pm
x 18

Re: Rendering to texture, limitations !

Post by paul424 »

My fault , that is I had more then one CEGUI library present, and that fooled the RD loader into loading wrong version of CEGUI. Luckily I got an exception message in the console. Now RD works as expected ...

User avatar
paul424
Gnome
Posts: 377
Joined: Thu May 24, 2012 7:16 pm
x 18

Re: Rendering to texture, limitations !

Post by paul424 »

The intercepted calls to Opengl looks fine: that is at least for the texture:

Code: Select all

glGenTextures      glGenTextures(1, freshPerlinTexture)
n                1
texture          freshPerlinTexture
glBindTexture      glBindTexture(GL_TEXTURE_2D, freshPerlinTexture)
target           GL_TEXTURE_2D
texture          freshPerlinTexture
glObjectLabel      glObjectLabel(freshPerlinTexture, -1, freshPerlinTexture)
Resource         freshPerlinTexture
length           -1
Label            freshPerlinTexture
glTexParameteri    glTexParameteri(freshPerlinTexture, GL_TEXTURE_BASE_LEVEL, 0)
texture          freshPerlinTexture
target           GL_TEXTURE_2D
pname            GL_TEXTURE_BASE_LEVEL
param            0
glTexParameteri    glTexParameteri(freshPerlinTexture, GL_TEXTURE_MAX_LEVEL, 0)
texture          freshPerlinTexture
target           GL_TEXTURE_2D
pname            GL_TEXTURE_MAX_LEVEL
param            0
glTexParameteriv   glTexParameteriv(freshPerlinTexture, GL_TEXTURE_SWIZZLE_RGBA, { 6403, 6404, 6405, 6406 })
texture          freshPerlinTexture
target           GL_TEXTURE_2D
pname            GL_TEXTURE_SWIZZLE_RGBA
params           int32_t[4]
[0]            6403
[1]            6404
[2]            6405
[3]            6406
glTexStorage2D     glTexStorage2D(freshPerlinTexture, GL_TEXTURE_2D, 1, GL_RGBA8, 4096, 4096)
texture          freshPerlinTexture
target           GL_TEXTURE_2D
levels           1
internalformat   GL_RGBA8
width            4096
height           4096
glTexSubImage2D    glTexSubImage2D(freshPerlinTexture, (67108864 bytes))
texture          freshPerlinTexture
target           GL_TEXTURE_2D
level            0
xoffset          0
yoffset          0
width            4096
height           4096
format           GL_RGBA
type             GL_UNSIGNED_INT_8_8_8_8
pixels           (67108864 bytes)
glTexSubImage2D    glTexSubImage2D(freshPerlinTexture, (67108864 bytes))
texture          freshPerlinTexture
target           GL_TEXTURE_2D
level            0
xoffset          0
yoffset          0
width            4096
height           4096
format           GL_RGBA
type             GL_UNSIGNED_INT_8_8_8_8
pixels           (67108864 bytes)
User avatar
paul424
Gnome
Posts: 377
Joined: Thu May 24, 2012 7:16 pm
x 18

Re: Rendering to texture, limitations !

Post by paul424 »

Here's the gdb backtrace when it comes to rendering Texture :

Code: Select all

#0  Ogre::RenderSystem::_render (this=this@entry=0xdbf230, op=...) at /home/tom/Downloads/ogre-13.6.5/OgreMain/src/OgreRenderSystem.cpp:647
#1  0x00007ffff454dc39 in Ogre::GL3PlusRenderSystem::_render (this=0xdbf230, op=...) at /home/tom/Downloads/ogre-13.6.5/RenderSystems/GL3Plus/src/OgreGL3PlusRenderSystem.cpp:1071
#2  0x00007ffff7293a21 in Ogre::SceneManager::_issueRenderOp (this=0x5d52640, rend=0x5d533e0, pass=<optimized out>) at /home/tom/Downloads/ogre-13.6.5/OgreMain/src/OgreSceneManager.cpp:3932
#3  0x00007ffff729dd68 in Ogre::SceneManager::issueRenderWithLights (this=0x5d52640, rend=0x5d533e0, pass=0x1af44a0, pLightListToUse=<optimized out>, 
    lightScissoringClipping=<optimized out>) at /home/tom/Downloads/ogre-13.6.5/OgreMain/src/OgreSceneManager.cpp:1780
#4  0x00007ffff729e0dd in Ogre::SceneManager::renderSingleObject (this=<optimized out>, rend=0x5d533e0, pass=0x1af44a0, lightScissoringClipping=true, doLightIteration=<optimized out>, 
    manualLightList=<optimized out>) at /home/tom/Downloads/ogre-13.6.5/OgreMain/src/OgreSceneManager.cpp:2175
#5  0x00007ffff72491c9 in Ogre::QueuedRenderableCollection::acceptVisitorDescending (this=<optimized out>, visitor=0x5d52d90)
    at /home/tom/Downloads/ogre-13.6.5/OgreMain/src/OgreRenderQueueSortingGrouping.cpp:472
#6  0x00007ffff7249265 in Ogre::QueuedRenderableCollection::acceptVisitor (this=this@entry=0x781f8c0, visitor=visitor@entry=0x5d52d90, om=<optimized out>, 
    om@entry=Ogre::QueuedRenderableCollection::OM_SORT_DESCENDING) at /home/tom/Downloads/ogre-13.6.5/OgreMain/src/OgreRenderQueueSortingGrouping.cpp:444
#7  0x00007ffff72903e1 in Ogre::SceneManager::BRAND NAME::renderObjects (this=this@entry=0x5d52d90, objs=..., 
    om=om@entry=Ogre::QueuedRenderableCollection::OM_SORT_DESCENDING, lightScissoringClipping=lightScissoringClipping@entry=true, doLightIteration=doLightIteration@entry=true, 
    _manualLightList=_manualLightList@entry=0x0, _transparentShadowCastersMode=false) at /home/tom/Downloads/ogre-13.6.5/OgreMain/src/OgreSceneManager.cpp:1620
#8  0x00007ffff72905d6 in Ogre::SceneManager::renderBasicQueueGroupObjects (this=0x5d52640, pGroup=0x10bfdc0, om=Ogre::QueuedRenderableCollection::OM_PASS_GROUP)
    at /home/tom/Downloads/ogre-13.6.5/OgreMain/src/OgreSceneManager.cpp:1724
#9  0x00007ffff7290c00 in Ogre::SceneManager::renderVisibleObjectsDefaultSequence (this=this@entry=0x5d52640) at /home/tom/Downloads/ogre-13.6.5/OgreMain/src/OgreSceneManager.cpp:1508
#10 0x00007ffff729514c in Ogre::SceneManager::_renderVisibleObjects (this=0x5d52640) at /home/tom/Downloads/ogre-13.6.5/OgreMain/include/OgreSceneManager.h:1846
#11 Ogre::SceneManager::_renderScene (this=<optimized out>, camera=0x5d52f90, vp=<optimized out>, includeOverlays=<optimized out>)
    at /home/tom/Downloads/ogre-13.6.5/OgreMain/src/OgreSceneManager.cpp:1282
#12 0x00007ffff713843a in Ogre::Camera::_renderScene (this=0x5d52f90, vp=0x721e0e0) at /home/tom/Downloads/ogre-13.6.5/OgreMain/src/OgreCamera.cpp:496
#13 0x00007ffff7337b61 in Ogre::Viewport::update (this=<optimized out>) at /home/tom/Downloads/ogre-13.6.5/OgreMain/src/OgreViewport.cpp:151
#14 0x00007ffff7267248 in Ogre::RenderTarget::_updateViewport (this=0x7240f50, viewport=0x721e0e0, updateStatistics=true)
    at /home/tom/Downloads/ogre-13.6.5/OgreMain/src/OgreRenderTarget.cpp:195
#15 0x00007ffff726746d in Ogre::RenderTarget::_updateAutoUpdatedViewports (updateStatistics=true, this=0x7240f50) at /home/tom/Downloads/ogre-13.6.5/OgreMain/src/OgreRenderTarget.cpp:174
#16 Ogre::RenderTarget::updateImpl (this=0x7240f50) at /home/tom/Downloads/ogre-13.6.5/OgreMain/src/OgreRenderTarget.cpp:152
#17 0x00007ffff7266f24 in Ogre::RenderTarget::update (this=0x7240f50, swap=true) at /home/tom/Downloads/ogre-13.6.5/OgreMain/src/OgreRenderTarget.cpp:534
#18 0x0000000000996082 in RenderManager::initGameRenderer (this=0x7fffffffae30, gameMap=0x5aff250)
    at /home/tom/Opendungeons_github/OpenDungeons/source/render/RenderManager.cpp:382
#19 0x0000000000991aac in ODFrameListener::initGameRenderer (this=0x7fffffffabd0) at /home/tom/Opendungeons_github/OpenDungeons/source/render/ODFrameListener.cpp:352
#20 0x000000000093c15d in ODClient::processMessage (this=0x7fffffffb3f0, cmd=ServerNotificationType::startGameMode, packetReceived=...)
    at /home/tom/Opendungeons_github/OpenDungeons/source/network/ODClient.cpp:397
#21 0x0000000000976a00 in ODSocketClient::processOneClientSocketMessage (this=0x7fffffffb3f0, miliseconds=5)
    at /home/tom/Opendungeons_github/OpenDungeons/source/network/ODSocketClient.cpp:230
#22 0x000000000097689b in ODSocketClient::processClientSocketMessages (this=0x7fffffffb3f0, miliseconds=5)
    at /home/tom/Opendungeons_github/OpenDungeons/source/network/ODSocketClient.cpp:209
#23 0x0000000000991074 in ODFrameListener::frameRenderingQueued (this=0x7fffffffabd0, evt=...)
    at /home/tom/Opendungeons_github/OpenDungeons/source/render/ODFrameListener.cpp:216
#24 0x00007ffff7287bd5 in Ogre::Root::_fireFrameRenderingQueued (this=this@entry=0x7fffffffc200, evt=...) at /home/tom/Downloads/ogre-13.6.5/OgreMain/src/OgreRoot.cpp:721
#25 0x00007ffff728b776 in Ogre::Root::_fireFrameRenderingQueued (this=this@entry=0x7fffffffc200) at /home/tom/Downloads/ogre-13.6.5/OgreMain/src/OgreRoot.cpp:771
#26 0x00007ffff728b79e in Ogre::Root::_updateAllRenderTargets (this=this@entry=0x7fffffffc200) at /home/tom/Downloads/ogre-13.6.5/OgreMain/src/OgreRoot.cpp:1224
#27 0x00007ffff728b840 in Ogre::Root::renderOneFrame (this=this@entry=0x7fffffffc200) at /home/tom/Downloads/ogre-13.6.5/OgreMain/src/OgreRoot.cpp:855
#28 0x00007ffff728b880 in Ogre::Root::startRendering (this=0x7fffffffc200) at /home/tom/Downloads/ogre-13.6.5/OgreMain/src/OgreRoot.cpp:845
#29 0x0000000000a99272 in ODApplication::startClient (this=0x7fffffffd0d7) at /home/tom/Opendungeons_github/OpenDungeons/source/ODApplication.cpp:275
#30 0x0000000000a98441 in ODApplication::startGame (this=0x7fffffffd0d7, options=...) at /home/tom/Opendungeons_github/OpenDungeons/source/ODApplication.cpp:81
#31 0x0000000000a9ab5c in main (argc=1, argv=0x7fffffffd3a8) at /home/tom/Opendungeons_github/OpenDungeons/source/main.cpp:88

Here's the pointer to mActiveViewport, well Ogre Viewport for that rendering I suppose:

Code: Select all

(gdb) p *mActiveViewport
$3 = {<Ogre::AllocatedObject<0>> = {<No data fields>}, _vptr.Viewport = 0x7ffff74128d8 <vtable for Ogre::Viewport+16>, mCamera = 0x5d52f90, mTarget = 0x7240f50, mRelRect = {left = 0, 
    top = 0, right = 1, bottom = 1}, mActRect = {left = 0, top = 0, right = 4096, bottom = 4096}, mZOrder = 0, mBackColour = {r = 0, g = 0, b = 0, a = 1}, mDepthClearValue = 1, 
  mClearEveryFrame = true, mClearBuffers = 3, mUpdated = false, mShowOverlays = false, mShowSkies = true, mShowShadows = true, mVisibilityMask = 4294967295, 
  mMaterialSchemeName = "ShaderGeneratorDefaultScheme", mOrientationMode = Ogre::OR_DEGREE_0, mIsAutoUpdated = true, mListeners = std::vector of length 0, capacity 0, 
  mColourBuffer = Ogre::CBT_BACK}
 

Notice the VIEWPORT HAS THE RIGHT AND BOTTOM VALUES TO 4096 !!!! SO why it is rendering 1920x1200 !!? :(
GLRenderSystemCommon:

Code: Select all

(gdb) p *this
$4 = {<Ogre::GLRenderSystemCommon> = {<Ogre::RenderSystem> = {<Ogre::AllocatedObject<0>> = {<No data fields>}, 
      _vptr.RenderSystem = 0x7ffff45977c0 <vtable for Ogre::GL3PlusRenderSystem+16>, mDepthBufferPool = std::map with 1 element = {[1] = std::vector of length 5, capacity 8 = {0xfe7c60, 
          0x5fbe1d0, 0x5fbe150, 0xbceb440, 0x72a8a70}}, mRenderTargets = std::map with 3 elements = {["OpenDungeons 0.7.1"] = 0xd1f970, ["rtt/208354176/smokeTexture"] = 0xc5222f0, 
        ["rtt/95407968/PerlinNoiseTexture"] = 0x7240f50}, mPrioritisedRenderTargets = std::multimap with 3 elements = {[2 '\002'] = 0xc5222f0, [2 '\002'] = 0x7240f50, 
        [4 '\004'] = 0xd1f970}, mActiveRenderTarget = 0x7240f50, 
      mActiveVertexGpuProgramParameters = {<std::shared_ptr<Ogre::GpuProgramParameters>> = std::shared_ptr<Ogre::GpuProgramParameters> (use count 2, weak count 0) = {
          get() = 0x1a5ffe0}, <No data fields>}, 
      mActiveGeometryGpuProgramParameters = {<std::shared_ptr<Ogre::GpuProgramParameters>> = std::shared_ptr<Ogre::GpuProgramParameters> (empty) = {get() = 0x0}, <No data fields>}, 
      mActiveFragmentGpuProgramParameters = {<std::shared_ptr<Ogre::GpuProgramParameters>> = std::shared_ptr<Ogre::GpuProgramParameters> (use count 2, weak count 0) = {
          get() = 0x1abbfd0}, <No data fields>}, 
      mActiveTessellationHullGpuProgramParameters = {<std::shared_ptr<Ogre::GpuProgramParameters>> = std::shared_ptr<Ogre::GpuProgramParameters> (empty) = {get() = 0x0}, <No data fields>}, 
      mActiveTessellationDomainGpuProgramParameters = {<std::shared_ptr<Ogre::GpuProgramParameters>> = std::shared_ptr<Ogre::GpuProgramParameters> (empty) = {
          get() = 0x0}, <No data fields>}, mActiveComputeGpuProgramParameters = {<std::shared_ptr<Ogre::GpuProgramParameters>> = std::shared_ptr<Ogre::GpuProgramParameters> (empty) = {
          get() = 0x0}, <No data fields>}, mTextureManager = 0xce7c60, mActiveViewport = 0x721e0e0, mCullingMode = Ogre::CULL_CLOCKWISE, mBatchCount = 0, mFaceCount = 0, mVertexCount = 0, 
      mManualBlendColours = {{{r = 1, g = 1, b = 1, a = 1}, {r = 1, g = 1, b = 1, a = 1}} <repeats 16 times>}, mInvertVertexWinding = false, mIsReverseDepthBufferEnabled = false, 
      mDisabledTexUnitsFrom = 0, mCurrentPassIterationCount = 1, mCurrentPassIterationNum = 0, mDerivedDepthBias = false, mDerivedDepthBiasBase = 0, mDerivedDepthBiasMultiplier = 0, 
      mDerivedDepthBiasSlopeScale = 0, mGlobalInstanceVertexBuffer = {<std::shared_ptr<Ogre::HardwareVertexBuffer>> = std::shared_ptr<Ogre::HardwareVertexBuffer> (empty) = {
          get() = 0x0}, <No data fields>}, mGlobalInstanceVertexBufferVertexDeclaration = 0x0, mGlobalNumberOfInstances = 1, mEventNames = std::vector of length 1, capacity 1 = {
        "RenderSystemCapabilitiesCreated"}, mEventListeners = empty std::__cxx11::list, mHwOcclusionQueries = empty std::__cxx11::list, mVertexProgramBound = true, 
      mGeometryProgramBound = false, mFragmentProgramBound = true, mTessellationHullProgramBound = false, mTessellationDomainProgramBound = false, mComputeProgramBound = false, 
      mClipPlanes = std::vector of length 0, capacity 0, mClipPlanesDirty = false, mRealCapabilities = 0xfe3740, mCurrentCapabilities = 0xfe3740, mUseCustomCapabilities = false, 
      mDriverVersion = {major = 4, minor = 6, release = 0, build = 0}, mNativeShadingLanguageVersion = 460, mTexProjRelative = false, 
      mTexProjRelativeOrigin = {<Ogre::VectorBase<3, float>> = {x = 0, y = 0, z = 1000}, <No data fields>}, mOptions = std::map with 10 elements = {["Debug Layer"] = {name = "Debug Layer", 
          currentValue = "Off", possibleValues = std::vector of length 2, capacity 2 = {"Off", "On"}, immutable = false}, ["Display Frequency"] = {name = "Display Frequency", 
          currentValue = "51 Hz", possibleValues = std::vector of length 1, capacity 2 = {"51 Hz"}, immutable = true}, ["FSAA"] = {name = "FSAA", currentValue = "0", 
          possibleValues = std::vector of length 5, capacity 5 = {"0", "16", "2", "4", "8"}, immutable = false}, ["Full Screen"] = {name = "Full Screen", currentValue = "Yes", 
          possibleValues = std::vector of length 2, capacity 2 = {"No", "Yes"}, immutable = false}, ["Reversed Z-Buffer"] = {name = "Reversed Z-Buffer", currentValue = "No", 
          possibleValues = std::vector of length 2, capacity 2 = {"No", "Yes"}, immutable = false}, ["Separate Shader Objects"] = {name = "Separate Shader Objects", currentValue = "Yes", 
          possibleValues = std::vector of length 2, capacity 2 = {"No", "Yes"}, immutable = false}, ["VSync"] = {name = "VSync", currentValue = "Yes", 
          possibleValues = std::vector of length 2, capacity 2 = {"No", "Yes"}, immutable = false}, ["VSync Interval"] = {name = "VSync Interval", currentValue = "1", 
          possibleValues = std::vector of length 4, capacity 4 = {"1", "2", "3", "4"}, immutable = false}, ["Video Mode"] = {name = "Video Mode", currentValue = "1920 x 1200", 
          possibleValues = std::vector of length 16, capacity 16 = {" 640 x  480", " 720 x  480", " 720 x  576", " 800 x  600", "1024 x  768", "1280 x  720", "1280 x  800", "1280 x  960", 
            "1280 x 1024", "1366 x  768", "1440 x  900", "1600 x 1200", "1680 x 1050", "1920 x 1080", "1920 x 1200", "3840 x 1200"}, immutable = false}, ["sRGB Gamma Conversion"] = {
          name = "sRGB Gamma Conversion", currentValue = "No", possibleValues = std::vector of length 2, capacity 2 = {"No", "Yes"}, immutable = false}}, mCurrentBlend = {writeR = true, 
        writeG = true, writeB = true, writeA = true, sourceFactor = Ogre::SBF_SOURCE_ALPHA, destFactor = Ogre::SBF_ONE_MINUS_SOURCE_ALPHA, sourceFactorAlpha = Ogre::SBF_SOURCE_ALPHA, 
        destFactorAlpha = Ogre::SBF_ONE_MINUS_SOURCE_ALPHA, operation = Ogre::SBO_ADD, alphaOperation = Ogre::SBO_ADD}, 
      mFixedFunctionParams = {<std::shared_ptr<Ogre::GpuProgramParameters>> = std::shared_ptr<Ogre::GpuProgramParameters> (empty) = {get() = 0x0}, <No data fields>}, mStencilState = {
        compareOp = Ogre::CMPF_LESS_EQUAL, stencilFailOp = Ogre::SOP_KEEP, depthFailOp = Ogre::SOP_KEEP, depthStencilPassOp = Ogre::SOP_KEEP, referenceValue = 0, compareMask = 4294967295, 
        writeMask = 4294967295, enabled = false, twoSidedOperation = false}}, mMainContext = 0xdf4e60, mCurrentContext = 0xdf4e60, mGLSupport = 0xda2860, 
    mExtensionList = std::set with 385 elements = {[0] = "GL_AMD_multi_draw_indirect", [1] = "GL_AMD_seamless_cubemap_per_texture", [2] = "GL_AMD_vertex_shader_layer", 
      [3] = "GL_AMD_vertex_shader_viewport_index", [4] = "GL_ARB_ES2_compatibility", [5] = "GL_ARB_ES3_1_compatibility", [6] = "GL_ARB_ES3_2_compatibility", 
      [7] = "GL_ARB_ES3_compatibility", [8] = "GL_ARB_arrays_of_arrays", [9] = "GL_ARB_base_instance", [10] = "GL_ARB_bindless_texture", [11] = "GL_ARB_blend_func_extended", 
      [12] = "GL_ARB_buffer_storage", [13] = "GL_ARB_clear_buffer_object", [14] = "GL_ARB_clear_texture", [15] = "GL_ARB_clip_control", [16] = "GL_ARB_color_buffer_float", 
      [17] = "GL_ARB_compressed_texture_pixel_storage", [18] = "GL_ARB_compute_shader", [19] = "GL_ARB_compute_variable_group_size", [20] = "GL_ARB_conditional_render_inverted", 
      [21] = "GL_ARB_conservative_depth", [22] = "GL_ARB_copy_buffer", [23] = "GL_ARB_copy_image", [24] = "GL_ARB_cull_distance", [25] = "GL_ARB_debug_output", 
      [26] = "GL_ARB_depth_buffer_float", [27] = "GL_ARB_depth_clamp", [28] = "GL_ARB_depth_texture", [29] = "GL_ARB_derivative_control", [30] = "GL_ARB_direct_state_access", 
      [31] = "GL_ARB_draw_buffers", [32] = "GL_ARB_draw_buffers_blend", [33] = "GL_ARB_draw_elements_base_vertex", [34] = "GL_ARB_draw_indirect", [35] = "GL_ARB_draw_instanced", 
      [36] = "GL_ARB_enhanced_layouts", [37] = "GL_ARB_explicit_attrib_location", [38] = "GL_ARB_explicit_uniform_location", [39] = "GL_ARB_fragment_coord_conventions", 
      [40] = "GL_ARB_fragment_layer_viewport", [41] = "GL_ARB_fragment_program", [42] = "GL_ARB_fragment_program_shadow", [43] = "GL_ARB_fragment_shader", 
      [44] = "GL_ARB_fragment_shader_interlock", [45] = "GL_ARB_framebuffer_no_attachments", [46] = "GL_ARB_framebuffer_object", [47] = "GL_ARB_framebuffer_sRGB", 
--Type <RET> for more, q to quit, c to continue without paging--
      [48] = "GL_ARB_geometry_shader4", [49] = "GL_ARB_get_program_binary", [50] = "GL_ARB_get_texture_sub_image", [51] = "GL_ARB_gl_spirv", [52] = "GL_ARB_gpu_shader5", 
      [53] = "GL_ARB_gpu_shader_fp64", [54] = "GL_ARB_gpu_shader_int64", [55] = "GL_ARB_half_float_pixel", [56] = "GL_ARB_half_float_vertex", [57] = "GL_ARB_imaging", 
      [58] = "GL_ARB_indirect_parameters", [59] = "GL_ARB_instanced_arrays", [60] = "GL_ARB_internalformat_query", [61] = "GL_ARB_internalformat_query2", 
      [62] = "GL_ARB_invalidate_subdata", [63] = "GL_ARB_map_buffer_alignment", [64] = "GL_ARB_map_buffer_range", [65] = "GL_ARB_multi_bind", [66] = "GL_ARB_multi_draw_indirect", 
      [67] = "GL_ARB_multisample", [68] = "GL_ARB_multitexture", [69] = "GL_ARB_occlusion_query", [70] = "GL_ARB_occlusion_query2", [71] = "GL_ARB_parallel_shader_compile", 
      [72] = "GL_ARB_pipeline_statistics_query", [73] = "GL_ARB_pixel_buffer_object", [74] = "GL_ARB_point_parameters", [75] = "GL_ARB_point_sprite", [76] = "GL_ARB_polygon_offset_clamp", 
      [77] = "GL_ARB_post_depth_coverage", [78] = "GL_ARB_program_interface_query", [79] = "GL_ARB_provoking_vertex", [80] = "GL_ARB_query_buffer_object", 
      [81] = "GL_ARB_robust_buffer_access_behavior", [82] = "GL_ARB_robustness", [83] = "GL_ARB_sample_locations", [84] = "GL_ARB_sample_shading", [85] = "GL_ARB_sampler_objects", 
      [86] = "GL_ARB_seamless_cube_map", [87] = "GL_ARB_seamless_cubemap_per_texture", [88] = "GL_ARB_separate_shader_objects", [89] = "GL_ARB_shader_atomic_counter_ops", 
      [90] = "GL_ARB_shader_atomic_counters", [91] = "GL_ARB_shader_ballot", [92] = "GL_ARB_shader_bit_encoding", [93] = "GL_ARB_shader_clock", [94] = "GL_ARB_shader_draw_parameters", 
      [95] = "GL_ARB_shader_group_vote", [96] = "GL_ARB_shader_image_load_store", [97] = "GL_ARB_shader_image_size", [98] = "GL_ARB_shader_objects", [99] = "GL_ARB_shader_precision", 
      [100] = "GL_ARB_shader_storage_buffer_object", [101] = "GL_ARB_shader_subroutine", [102] = "GL_ARB_shader_texture_image_samples", [103] = "GL_ARB_shader_texture_lod", 
      [104] = "GL_ARB_shader_viewport_layer_array", [105] = "GL_ARB_shading_language_100", [106] = "GL_ARB_shading_language_420pack", [107] = "GL_ARB_shading_language_include", 
      [108] = "GL_ARB_shading_language_packing", [109] = "GL_ARB_shadow", [110] = "GL_ARB_sparse_buffer", [111] = "GL_ARB_sparse_texture", [112] = "GL_ARB_sparse_texture2", 
      [113] = "GL_ARB_sparse_texture_clamp", [114] = "GL_ARB_spirv_extensions", [115] = "GL_ARB_stencil_texturing", [116] = "GL_ARB_sync", [117] = "GL_ARB_tessellation_shader", 
      [118] = "GL_ARB_texture_barrier", [119] = "GL_ARB_texture_border_clamp", [120] = "GL_ARB_texture_buffer_object", [121] = "GL_ARB_texture_buffer_object_rgb32", 
      [122] = "GL_ARB_texture_buffer_range", [123] = "GL_ARB_texture_compression", [124] = "GL_ARB_texture_compression_bptc", [125] = "GL_ARB_texture_compression_rgtc", 
      [126] = "GL_ARB_texture_cube_map", [127] = "GL_ARB_texture_cube_map_array", [128] = "GL_ARB_texture_env_add", [129] = "GL_ARB_texture_env_combine", 
      [130] = "GL_ARB_texture_env_crossbar", [131] = "GL_ARB_texture_env_dot3", [132] = "GL_ARB_texture_filter_anisotropic", [133] = "GL_ARB_texture_filter_minmax", 
      [134] = "GL_ARB_texture_float", [135] = "GL_ARB_texture_gather", [136] = "GL_ARB_texture_mirror_clamp_to_edge", [137] = "GL_ARB_texture_mirrored_repeat", 
      [138] = "GL_ARB_texture_multisample", [139] = "GL_ARB_texture_non_power_of_two", [140] = "GL_ARB_texture_query_levels", [141] = "GL_ARB_texture_query_lod", 
      [142] = "GL_ARB_texture_rectangle", [143] = "GL_ARB_texture_rg", [144] = "GL_ARB_texture_rgb10_a2ui", [145] = "GL_ARB_texture_stencil8", [146] = "GL_ARB_texture_storage", 
      [147] = "GL_ARB_texture_storage_multisample", [148] = "GL_ARB_texture_swizzle", [149] = "GL_ARB_texture_view", [150] = "GL_ARB_timer_query", [151] = "GL_ARB_transform_feedback2", 
      [152] = "GL_ARB_transform_feedback3", [153] = "GL_ARB_transform_feedback_instanced", [154] = "GL_ARB_transform_feedback_overflow_query", [155] = "GL_ARB_transpose_matrix", 
      [156] = "GL_ARB_uniform_buffer_object", [157] = "GL_ARB_vertex_array_bgra", [158] = "GL_ARB_vertex_array_object", [159] = "GL_ARB_vertex_attrib_64bit", 
      [160] = "GL_ARB_vertex_attrib_binding", [161] = "GL_ARB_vertex_buffer_object", [162] = "GL_ARB_vertex_program", [163] = "GL_ARB_vertex_shader", 
      [164] = "GL_ARB_vertex_type_10f_11f_11f_rev", [165] = "GL_ARB_vertex_type_2_10_10_10_rev", [166] = "GL_ARB_viewport_array", [167] = "GL_ARB_window_pos", 
      [168] = "GL_ATI_draw_buffers", [169] = "GL_ATI_texture_float", [170] = "GL_ATI_texture_mirror_once", [171] = "GL_EXTX_framebuffer_mixed_formats", [172] = "GL_EXT_Cg_shader", 
      [173] = "GL_EXT_EGL_image_storage", [174] = "GL_EXT_abgr", [175] = "GL_EXT_bgra", [176] = "GL_EXT_bindable_uniform", [177] = "GL_EXT_blend_color", 
      [178] = "GL_EXT_blend_equation_separate", [179] = "GL_EXT_blend_func_separate", [180] = "GL_EXT_blend_minmax", [181] = "GL_EXT_blend_subtract", 
      [182] = "GL_EXT_compiled_vertex_array", [183] = "GL_EXT_depth_bounds_test", [184] = "GL_EXT_direct_state_access", [185] = "GL_EXT_draw_buffers2", [186] = "GL_EXT_draw_instanced", 
      [187] = "GL_EXT_draw_range_elements", [188] = "GL_EXT_fog_coord", [189] = "GL_EXT_framebuffer_blit", [190] = "GL_EXT_framebuffer_multisample", 
      [191] = "GL_EXT_framebuffer_multisample_blit_scaled", [192] = "GL_EXT_framebuffer_object", [193] = "GL_EXT_framebuffer_sRGB", [194] = "GL_EXT_geometry_shader4", 
      [195] = "GL_EXT_gpu_program_parameters", [196] = "GL_EXT_gpu_shader4", [197] = "GL_EXT_import_sync_object", [198] = "GL_EXT_memory_object", [199] = "GL_EXT_memory_object_fd"...}, 
    mVendor = Ogre::GPU_NVIDIA, mRTTManager = 0xfe6430, mBackgroundContextList = empty std::__cxx11::list}, mMinFilter = Ogre::FO_LINEAR, mMipFilter = Ogre::FO_POINT, mTextureTypes = {
    3553, 3553, 3553, 3553, 0 <repeats 12 times>}, mLargestSupportedAnisotropy = 16, mDepthWrite = false, mStencilWriteMask = 4294967295, mStateCacheManager = 0xfe34c0, 
  mProgramManager = 0xde6620, mGLSLShaderFactory = 0xfe6350, mSPIRVShaderFactory = 0xfe63c0, mHardwareBufferManager = 0xdd7d70, mActiveTextureUnit = 0, 
  mActiveBufferMap = std::unordered_map with 0 elements, mGLInitialised = true, mSeparateShaderObjectsEnabled = true, mCurrentShader = {_M_elems = {0x1a5f960, 0x1abac10, 0x0, 0x0, 0x0, 
      0x0}}}

User avatar
paul424
Gnome
Posts: 377
Joined: Thu May 24, 2012 7:16 pm
x 18

Re: Rendering to texture, limitations !

Post by paul424 »

The biggest suprise it is mixing the RenderTargets , that is -- when it comes to rendering it has all three surfaces ( from entire application ) on the list , notice :

mRenderTargets = std::map with 3 elements = {["OpenDungeons 0.7.1"] = 0xd1f970, ["rtt/208354176/smokeTexture"] = 0xc5222f0,
["rtt/95407968/PerlinNoiseTexture"] = 0x7240f50},

User avatar
paul424
Gnome
Posts: 377
Joined: Thu May 24, 2012 7:16 pm
x 18

Re: Rendering to texture, limitations !

Post by paul424 »

I even intercepted the line with glViewport , that is :

Code: Select all

GL3Plus/src/OgreGL3PlusStateCacheManager.cpp
481:            OGRE_CHECK_GL_ERROR(glViewport(r.left, r.top, r.width(), r.height()));

and of course the size of r was as desired. Seems that setting a Viewport is not a culprit here, but I slowly run out of idea what it could be.....

rpgplayerrobin
Gnoll
Posts: 676
Joined: Wed Mar 18, 2009 3:03 am
x 379

Re: Rendering to texture, limitations !

Post by rpgplayerrobin »

You simply have to reproduce the problem in any Ogre source sample project and post the code required here so other people can also reproduce it.
If you manage to get the bug happen there, it would be very easy for paroj or anyone else to take a look at it.

Also, it seems you are using exclusive fullscreen:

["Full Screen"] = {name = "Full Screen", currentValue = "Yes"

Does the bug disappear when you instead run it in a window?
Also, exclusive fullscreen is almost never used in games today, so I would recommend to not use it as default as windowed fullscreen is default these days instead (which solves a lot of issues).

User avatar
paul424
Gnome
Posts: 377
Joined: Thu May 24, 2012 7:16 pm
x 18

Re: Rendering to texture, limitations !

Post by paul424 »

Disabling the fullscreen does not help -- the entire texture is still limited by the windows size BTW. I forgot that texture of any size will be compressed on disc, and the texture 4096x4096x4 would be much smaller then 64MB, so maybe I should stay on loading the texture from file....

User avatar
paul424
Gnome
Posts: 377
Joined: Thu May 24, 2012 7:16 pm
x 18

Re: Rendering to texture, limitations !

Post by paul424 »

Here;s the code for whole game , with broken textures : https://github.com/tomluchowski/OpenDun ... e_problems
Please MIND changing the const int PERLIN_NOISE_TEXTURE_SIZE = 1024; in RenderManager.cpp to something bigger to see the bug.
This is for people who has time and strength to fight with large code base.

Lax
Gnoll
Posts: 644
Joined: Mon Aug 06, 2007 12:53 pm
Location: Saarland, Germany
x 59

Re: Rendering to texture, limitations !

Post by Lax »

Hi,

I could this be related to my topic here:

viewtopic.php?t=97282

I also created a minimap with fog of war, but yes with 1024x1024 resolution, see this topic:

Maybe you can grab some useful information:

viewtopic.php?t=97291

Best Regards
Lax

http://www.lukas-kalinowski.com/Homepage/?page_id=1631
Please support Second Earth Technic Base built of Lego bricks for Lego ideas: https://ideas.lego.com/projects/81b9bd1 ... b97b79be62

paroj
OGRE Team Member
OGRE Team Member
Posts: 2106
Joined: Sun Mar 30, 2014 2:51 pm
x 1132

Re: Rendering to texture, limitations !

Post by paroj »

paul424 wrote: Fri Aug 23, 2024 3:19 pm

Here;s the code for whole game , with broken textures : https://github.com/tomluchowski/OpenDun ... e_problems
Please MIND changing the const int PERLIN_NOISE_TEXTURE_SIZE = 1024; in RenderManager.cpp to something bigger to see the bug.
This is for people who has time and strength to fight with large code base.

if you got renderdoc running, please make a capture of the issue with GL3+ and upload it somewhere. I can take a look then

User avatar
paul424
Gnome
Posts: 377
Joined: Thu May 24, 2012 7:16 pm
x 18

Re: Rendering to texture, limitations !

Post by paul424 »

Here it is, capture in RenderDoc containing the mentioned creation of the texture in Opendungeons-plus
https://easyupload.io/3ngu28

paroj
OGRE Team Member
OGRE Team Member
Posts: 2106
Joined: Sun Mar 30, 2014 2:51 pm
x 1132

Re: Rendering to texture, limitations !

Post by paroj »

rpgplayerrobin
Gnoll
Posts: 676
Joined: Wed Mar 18, 2009 3:03 am
x 379

Re: Rendering to texture, limitations !

Post by rpgplayerrobin »

By the way, have you yet tried the code outside of your user-code?
Simply put the RenderManager::createPerlinTexture function in an Ogre sample code and see if it still happens there.

If it does happen there, just post the code here and everyone can reproduce it.

Also, are you sure your plane actually covers the entire viewport? Try to make the plane mesh a lot bigger and see if it makes any difference.

User avatar
paul424
Gnome
Posts: 377
Joined: Thu May 24, 2012 7:16 pm
x 18

Re: Rendering to texture, limitations !

Post by paul424 »

@rpgplayerrobin I did, but outside the bug does not reproduce .

@paroj : Ogre::Root::getSingleton().getRenderSystem()->setScissorTest(false); just before the texture is being generated does not help ....

rpgplayerrobin
Gnoll
Posts: 676
Joined: Wed Mar 18, 2009 3:03 am
x 379

Re: Rendering to texture, limitations !

Post by rpgplayerrobin »

I did, but outside the bug does not reproduce .

In that case it means that this is not an Ogre bug (at least currently) until you can reproduce the problem.
If the issue only happens in your application and not in an Ogre sample, it means you have done something incorrect in your own user-code.

Just strip down code to become as small as possible until the issue no longer actually happens in your user-code, since if it does not happen in Ogre sample code it means you are doing something in your user-code that is not correct.

It is impossible for anyone else to help you with this issue until you can actually pinpoint the issue, since if it has nothing to do with Ogre (which seems to be the case in your last reply), we cannot really help much unless we download your whole project and build all of its dependencies and such.
But no one will have time to do that for you if you yourself do not have the time to actually reproduce the problem in a minimal code yourself.

Also, you did not answer the last question in my previous post:

Also, are you sure your plane actually covers the entire viewport? Try to make the plane mesh a lot bigger and see if it makes any difference.

Also, regarding this:

@paroj : Ogre::Root::getSingleton().getRenderSystem()->setScissorTest(false); just before the texture is being generated does not help ....

You should go into debug mode and debug the Ogre source why it attempts to do a scissor test for that texture, and you cannot do that just by calling a function, especially not like that since that is not how the function works.
Actually go into debug mode and debug it using breakpoints to see why it uses the scissor test (at GL3PlusRenderSystem::setScissorTest for starters).

paroj
OGRE Team Member
OGRE Team Member
Posts: 2106
Joined: Sun Mar 30, 2014 2:51 pm
x 1132

Re: Rendering to texture, limitations !

Post by paroj »

paul424 wrote: Sat Aug 31, 2024 2:20 pm

@paroj : Ogre::Root::getSingleton().getRenderSystem()->setScissorTest(false); just before the texture is being generated does not help ....

that might be overridden by some listener that will run afterwards. Check the renderdoc capture for the glScissor calls and try what rpgplayerrobin suggested

User avatar
paul424
Gnome
Posts: 377
Joined: Thu May 24, 2012 7:16 pm
x 18

Re: Rendering to texture, limitations !

Post by paul424 »

Seems the CEGUI is the culprit here :

Code: Select all

#0  Ogre::GL3PlusRenderSystem::setScissorTest (enabled=true, rect=..., this=0x9e4320) at /home/tom/Downloads/ogre-13.6.5/RenderSystems/GL3Plus/src/OgreGL3PlusRenderSystem.cpp:1258
#1  Ogre::GL3PlusRenderSystem::setScissorTest (this=0x9e4320, enabled=true, rect=...) at /home/tom/Downloads/ogre-13.6.5/RenderSystems/GL3Plus/src/OgreGL3PlusRenderSystem.cpp:1250
#2  0x00007ffff7d485f2 in CEGUI::OgreGeometryBuffer::draw(unsigned int) const () from /usr/local/lib64/libCEGUIOgreRenderer-0.so.2
#3  0x00007ffff7a1ab18 in CEGUI::RenderQueue::draw(unsigned int) const () from /usr/local/lib64/libCEGUIBase-0.so.2
#4  0x00007ffff7a20d4e in CEGUI::RenderingSurface::draw(CEGUI::RenderQueue const&, CEGUI::RenderQueueEventArgs&, unsigned int) () from /usr/local/lib64/libCEGUIBase-0.so.2
#5  0x00007ffff7a20dd1 in CEGUI::RenderingSurface::drawContent(unsigned int) () from /usr/local/lib64/libCEGUIBase-0.so.2
#6  0x00007ffff7a020b0 in CEGUI::GUIContext::drawContent(unsigned int) () from /usr/local/lib64/libCEGUIBase-0.so.2
#7  0x00007ffff7a20e98 in CEGUI::RenderingSurface::draw(unsigned int) () from /usr/local/lib64/libCEGUIBase-0.so.2
#8  0x00007ffff7a32d5a in CEGUI::System::renderAllGUIContexts() () from /usr/local/lib64/libCEGUIBase-0.so.2
#9  0x00007ffff728dba6 in Ogre::SceneManager::fireRenderQueueStarted (this=<optimized out>, id=101 'e', invocation="")
    at /home/tom/Downloads/ogre-13.6.5/OgreMain/src/OgreSceneManager.cpp:2581
#10 0x00007ffff7290c38 in Ogre::SceneManager::renderVisibleObjectsDefaultSequence (this=this@entry=0x1c644a0) at /home/tom/Downloads/ogre-13.6.5/OgreMain/src/OgreSceneManager.cpp:1501
#11 0x00007ffff729514c in Ogre::SceneManager::_renderVisibleObjects (this=0x1c644a0) at /home/tom/Downloads/ogre-13.6.5/OgreMain/include/OgreSceneManager.h:1846
#12 Ogre::SceneManager::_renderScene (this=<optimized out>, camera=0x5746050, vp=<optimized out>, includeOverlays=<optimized out>)
    at /home/tom/Downloads/ogre-13.6.5/OgreMain/src/OgreSceneManager.cpp:1282
#13 0x00007ffff713843a in Ogre::Camera::_renderScene (this=0x5746050, vp=0x5726e40) at /home/tom/Downloads/ogre-13.6.5/OgreMain/src/OgreCamera.cpp:496
#14 0x00007ffff7337b61 in Ogre::Viewport::update (this=<optimized out>) at /home/tom/Downloads/ogre-13.6.5/OgreMain/src/OgreViewport.cpp:151
#15 0x00007ffff7267248 in Ogre::RenderTarget::_updateViewport (this=0x944960, viewport=0x5726e40, updateStatistics=true)
    at /home/tom/Downloads/ogre-13.6.5/OgreMain/src/OgreRenderTarget.cpp:195
#16 0x00007ffff726746d in Ogre::RenderTarget::_updateAutoUpdatedViewports (updateStatistics=true, this=0x944960) at /home/tom/Downloads/ogre-13.6.5/OgreMain/src/OgreRenderTarget.cpp:174
#17 Ogre::RenderTarget::updateImpl (this=0x944960) at /home/tom/Downloads/ogre-13.6.5/OgreMain/src/OgreRenderTarget.cpp:152
#18 0x00007ffff7266f24 in Ogre::RenderTarget::update (this=0x944960, swap=false) at /home/tom/Downloads/ogre-13.6.5/OgreMain/src/OgreRenderTarget.cpp:534
#19 0x00007ffff724b3ff in Ogre::RenderSystem::_updateAllRenderTargets (this=0x9e4320, swapBuffers=false) at /home/tom/Downloads/ogre-13.6.5/OgreMain/src/OgreRenderSystem.cpp:258
#20 0x00007ffff728b796 in Ogre::Root::_updateAllRenderTargets (this=this@entry=0x7fffffffb670) at /home/tom/Downloads/ogre-13.6.5/OgreMain/src/OgreRoot.cpp:1222
#21 0x00007ffff728b840 in Ogre::Root::renderOneFrame (this=this@entry=0x7fffffffb670) at /home/tom/Downloads/ogre-13.6.5/OgreMain/src/OgreRoot.cpp:855
#22 0x00007ffff728b880 in Ogre::Root::startRendering (this=this@entry=0x7fffffffb670) at /home/tom/Downloads/ogre-13.6.5/OgreMain/src/OgreRoot.cpp:845
#23 0x000000000078b86b in ODApplication::startClient (this=<optimized out>) at /home/tom/Opendungeons_github/OpenDungeonstom/source/ODApplication.cpp:275
#24 0x000000000078c3d5 in ODApplication::startGame (this=this@entry=0x7fffffffd0e0, options=...) at /home/tom/Opendungeons_github/OpenDungeonstom/source/ODApplication.cpp:81
#25 0x00000000004e6b3f in main (argc=1, argv=0x7fffffffd3a8) at /home/tom/Opendungeons_github/OpenDungeonstom/source/main.cpp:88
User avatar
paul424
Gnome
Posts: 377
Joined: Thu May 24, 2012 7:16 pm
x 18

Re: Rendering to texture, limitations !

Post by paul424 »

I augmented and recompiled your CEGUI version, and it works it works !!!!!!
Here's the proof :
Image