Code: Select all
#include "OgrePanelOverlayElement.h"
Paul
Code: Select all
#include "OgrePanelOverlayElement.h"
Code: Select all
g++ -g -O2 -o PagingLandScape2 PagingLandScape.o -L/usr/local/lib /usr/local/lib/libOgreMain.so /usr/lib/libfreetype.so -lCg -L/usr/lib /usr/lib/libSDL.so-lasound -L/usr/X11R6/lib -lX11 -lXext -lpthread /usr/local/lib/libILU.so -L/home/madlion/downloads/DevIL-1.6.7/src-IL/src /usr/local/lib/libIL.so -lpng -ltiff /usr/lib/libmng.so /usr/lib/libjpeg.so -lz -lm -ldl
PagingLandScape.o(.gnu.linkonce.t._ZN28PagingLandScapeFrameListenerD1Ev+0x52): In function `PagingLandScapeFrameListener::~PagingLandScapeFrameListener()':
../../../Samples/PagingLandScape2/include/PagingLandScape.h:366: undefined reference to `Ogre::PagingLandscapeListenerManager::getSingleton()'
PagingLandScape.o(.gnu.linkonce.t._ZN28PagingLandScapeFrameListenerD1Ev+0x5a):../../../Samples/PagingLandScape2/include/PagingLandScape.h:366: undefined reference to `Ogre::PagingLandscapeListenerManager::removeListener(Ogre::PagingLandscapeListener*)'
PagingLandScape.o(.gnu.linkonce.t._ZN28PagingLandScapeFrameListenerD0Ev+0x52): In function `PagingLandScapeFrameListener::~PagingLandScapeFrameListener()':
../../../Samples/PagingLandScape2/include/PagingLandScape.h:366: undefined reference to `Ogre::PagingLandscapeListenerManager::getSingleton()'
PagingLandScape.o(.gnu.linkonce.t._ZN28PagingLandScapeFrameListenerD0Ev+0x5a):../../../Samples/PagingLandScape2/include/PagingLandScape.h:366: undefined reference to `Ogre::PagingLandscapeListenerManager::removeListener(Ogre::PagingLandscapeListener*)'
PagingLandScape.o(.gnu.linkonce.t._ZN28PagingLandScapeFrameListenerC1EPN4Ogre12RenderWindowEPNS0_6CameraEPNS0_5LightEPNS0_9SceneNodeEbb+0x423): In function`PagingLandScapeFrameListener::PagingLandScapeFrameListener(Ogre::RenderWindow*, Ogre::Camera*, Ogre::Light*, Ogre::SceneNode*, bool, bool)':
../../../Samples/PagingLandScape2/include/PagingLandScape.h:350: undefined reference to `Ogre::PagingLandscapeListenerManager::getSingleton()'
PagingLandScape.o(.gnu.linkonce.t._ZN28PagingLandScapeFrameListenerC1EPN4Ogre12RenderWindowEPNS0_6CameraEPNS0_5LightEPNS0_9SceneNodeEbb+0x42b):../../../Samples/PagingLandScape2/include/PagingLandScape.h:350: undefined reference to `Ogre::PagingLandscapeListenerManager::addListener(Ogre::PagingLandscapeListener*)'
collect2: ld returned 1 exit status
make[1]: *** [PagingLandScape2] Fehler 1
Code: Select all
Resource gcanyon_height_4k2k.4.8.png not found.
Code: Select all
FileSystem Archive Codec for ps_height_1k/ created.
normal Map Calc : ..............................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
...
Width : 1025 Height : 1025 Bypp : 4
ps_height_1k.HN.
Code: Select all
08:38:48: FileSystem Archive Codec for ps_height_1k/ created.
08:38:54: An exception has been thrown!
-----------------------------------
Details:
-----------------------------------
Error #: 7
Function: Codec::getCodec
Description: Cannot find codec for extension .
File: c:\code\sandbox\ogrenew\ogremain\src\ogrecodec.cpp
Line: 46
Stack unwinding: <<beginning of stack>>
I am absolutely sure that Morrowind using the square tiles, not texture splatting.Morrowind probably uses texture splatting. It's similar to what you described, except one large alpha texture is stretched over the entire terrain (or a piece of the terrain if the terrain is split up like it is in Paging Landscape).
Code: Select all
msvcp71d.dll!std::basic_string<char,std::char_traits<char>,std::allocator<char> >::size() Line 1109 + 0x3 C++
msvcp71d.dll!std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & _Right={...}, unsigned int _Roff=0, unsigned int _Count=4294967295) Line 591 + 0x8 C++
msvcp71d.dll!std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & _Right={...}) Line 586 C++
msvcp71d.dll!std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator=(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & _Right={...}) Line 468 C++
OgreMain_d.dll!Ogre::Material::operator=() Line 78 + 0x15 C++
OgreMain_d.dll!Ogre::Material::clone(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & newName={...}) Line 168 C++
> Plugin_PagingLandScapeSceneManager2.dll!Ogre::PagingLandScapeTexture_InstantBaseTexture::_loadMaterial() Line 128 + 0x12 C++
Plugin_PagingLandScapeSceneManager2.dll!Ogre::PagingLandScapeTexture::load(unsigned int mX=2, unsigned int mZ=2) Line 64 + 0xd C++
Plugin_PagingLandScapeSceneManager2.dll!Ogre::PagingLandScapeTextureManager::load(const unsigned int & texX=2, const unsigned int & texZ=2) Line 289 + 0x19 C++
Plugin_PagingLandScapeSceneManager2.dll!Ogre::PagingLandScapePage::loadTexture() Line 151 C++
Plugin_PagingLandScapeSceneManager2.dll!Ogre::PagingLandScapePage::load(Ogre::SceneNode & PagingLandScapeRootNode={...}) Line 170 C++
Plugin_PagingLandScapeSceneManager2.dll!Ogre::PagingLandScapePageManager::updatePaging(Ogre::PagingLandScapeCamera * cam=0x0b798bd0) Line 322 C++
Plugin_PagingLandScapeSceneManager2.dll!Ogre::PagingLandScapeSceneManager::_updateSceneGraph(Ogre::Camera * cam=0x0b798bd0) Line 159 C++
OgreMain_d.dll!Ogre::SceneManager::_renderScene(Ogre::Camera * camera=0x0b798bd0, Ogre::Viewport * vp=0x0b7996f0, bool includeOverlays=true) Line 768 + 0x14 C++
OgreMain_d.dll!Ogre::Camera::_renderScene(Ogre::Viewport * vp=0x0b7996f0, bool includeOverlays=true) Line 390 + 0x2a C++
OgreMain_d.dll!Ogre::Viewport::update() Line 184 C++
OgreMain_d.dll!Ogre::RenderTarget::update() Line 107 C++
OgreMain_d.dll!Ogre::RenderWindow::update() Line 62 C++
OgreMain_d.dll!Ogre::RenderSystem::_updateAllRenderTargets() Line 96 + 0x24 C++
OgreMain_d.dll!Ogre::Root::_updateAllRenderTargets() Line 858 + 0x18 C++
OgreMain_d.dll!Ogre::Root::renderOneFrame() Line 626 C++
OgreMain_d.dll!Ogre::Root::startRendering() Line 612 + 0x8 C++
Demo_PagingLandScape2.exe!ExampleApplication::go() Line 58 + 0xe C++
Demo_PagingLandScape2.exe!WinMain(HINSTANCE__ * hInst=0x00400000, HINSTANCE__ * __formal=0x00000000, char * strCmdLine=0x00141f37, HINSTANCE__ * __formal=0x00000000) Line 53 + 0x8 C++
Demo_PagingLandScape2.exe!WinMainCRTStartup() Line 390 + 0x39 C
kernel32.dll!7c816d4f()
kernel32.dll!7c8399f3()
Code: Select all
An exception has occured: An exception has been thrown!
-----------------------------------
Details:
-----------------------------------
Error #: 4
Function: PagingLandScapeData2D_HeightField::_load
Description: Error: Declared World size <> Height Map Size..
File: OgrePagingLandScapeData2D_HeightField.cpp
Line: 303
Stack unwinding: <<beginning of stack>>
*-*-* OGRE Shutdown
Yes, but this technique allows to realize the unlimiteg amount of soils in one page.It seems complex (texture coordinates calculation), less hardware friendly (more textures and texture coordinates cannot be shared across pages), uglier (visible squares ) to me...
So Why do you prefer this method exactly ?
Then why does lightmap have more high resolution (screen 3), than alphamap ?It could be (and probably is) texture splatting with a lower resolution alpha map (each one of those squares is probably a pixel in the alpha map) and using bilear/trilenear filtering of the 3d card to automatically achieve the blending between the areas.
As I explained in another post, I have paging landscape working with unlimited textures in one page, but I still limit it to 5 for my own purposes. 5 textures can be done in 2 passes, plus an extra pass for the lightmap (3 total) in pixel shader 1.1.Yes, but this technique allows to realize the unlimiteg amount of soils in one page.
And Paging Landscape on this stage -- only 4 Confused , RGBA (if I do not wrong).
It's possible that Morrowind has done tiling as you say. I have the morrowind editor, I should play with it to see what the terrain texturing looks like. Regardless, I think that the next Morrowind engine (have you seen screenshots of the next game?) wouldn't use the same technique.Then why does lightmap have more high resolution (screen 3), than alphamap?
I think I should add a "colourmap format" parameter int the splitter.cfg and paginglandscape2.cfg.Function: D3D9Texture::_loadNormTex
Description: Unable to load texture from colourMapTG.2.2.Raw.
File: \OGRE\ogrenew\RenderSystems\Direct3D9\src\OgreD3D9Texture.cpp
Line: 571
Stack unwinding: <<beginning of stack>>
18:47:42: Error loading texture colourMapTG.2.2.Raw. Texture layer will be blan