Feedback wanted: Ogre 2.1 guide

Discussion area about developing with Ogre-Next (2.1, 2.2 and beyond)


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

Feedback wanted: Ogre 2.1 guide

Post by dark_sylinc »

I set up a guide on how to setup Ogre and how to start your own project that uses Ogre.

I need to know how easy/hard to follow is, or if you encounter other issues, doubts. etc.

Definitely what needs work is setting up your own project in iOS; the CMake script may need more tweaking.

Thank you!
screwt
Kobold
Posts: 29
Joined: Wed Feb 28, 2007 9:18 am
x 2

Re: Feedback wanted: Ogre 2.1 guide

Post by screwt »

Hello there,

I successfully built EmptyProject.

But i think the guide you wrote should be more visible in the wiki.
I messed up many times before i read your guide.
User avatar
spookyboo
Silver Sponsor
Silver Sponsor
Posts: 1141
Joined: Tue Jul 06, 2004 5:57 am
x 151
Contact:

Re: Feedback wanted: Ogre 2.1 guide

Post by spookyboo »

The dependencies never worked for me out of the box. I always had issues with SDL2 and rapidJson (headers were on the wrong level). Are these solved by now?
I've put something on the wiki (http://www.ogre3d.org/tikiwiki/tiki-ind ... ng+Ogre+V2). I see an overlap with your manual
al2950
OGRE Expert User
OGRE Expert User
Posts: 1227
Joined: Thu Dec 11, 2008 7:56 pm
Location: Bristol, UK
x 157

Re: Feedback wanted: Ogre 2.1 guide

Post by al2950 »

All looks good (only checked the Windows version)

However on a side note, based on some of the questions we get, I think we should do the following
- By default have BUILD_SAMPLES_2 selected, on even better remove it a leave BUILD_SAMPLES. For those of us who are familiar with Ogre and just want the base SDK, un-selecting BUILD_SAMPLES_2 is not a big issue, but it clearly is proving a barrier for people who want to give 2.1 a go.
- By default disable the OGRE_CONFIG_THREAD_PROVIDER and OGRE_CONFIG_THREADS, if it is the recommended way to use the latest version of Ogre. Especially as you state 'DO NOT USE BOOST' at the top!
User avatar
Zonder
Ogre Magi
Posts: 1168
Joined: Mon Aug 04, 2008 7:51 pm
Location: Manchester - England
x 73

Re: Feedback wanted: Ogre 2.1 guide

Post by Zonder »

al2950 wrote: However on a side note, based on some of the questions we get, I think we should do the following
- By default have BUILD_SAMPLES_2 selected, on even better remove it a leave BUILD_SAMPLES. For those of us who are familiar with Ogre and just want the base SDK, un-selecting BUILD_SAMPLES_2 is not a big issue, but it clearly is proving a barrier for people who want to give 2.1 a go.
- By default disable the OGRE_CONFIG_THREAD_PROVIDER and OGRE_CONFIG_THREADS, if it is the recommended way to use the latest version of Ogre. Especially as you state 'DO NOT USE BOOST' at the top!
+1
There are 10 types of people in the world: Those who understand binary, and those who don't...
frostbyte
Orc Shaman
Posts: 737
Joined: Fri May 31, 2013 2:28 am
x 65

Re: Feedback wanted: Ogre 2.1 guide

Post by frostbyte »

However on a side note, based on some of the questions we get, I think we should do the following
- By default have BUILD_SAMPLES_2 selected, on even better remove it a leave BUILD_SAMPLES. For those of us who are familiar with Ogre and just want the base SDK, un-selecting BUILD_SAMPLES_2 is not a big issue, but it clearly is proving a barrier for people who want to give 2.1 a go.
- By default disable the OGRE_CONFIG_THREAD_PROVIDER and OGRE_CONFIG_THREADS, if it is the recommended way to use the latest version of Ogre. Especially as you state 'DO NOT USE BOOST' at the top!
i've been meaning to ask about this awkwardness, but i figured that dark_sylinc just does'nt have time for all the petties
but since ogre2.1 is starting to attract new users and not just 1.x upgraders, maybe its time to take care of this
so...+1 for BUILD_SAMPLES_2 being the default
the woods are lovely dark and deep
but i have promises to keep
and miles to code before i sleep
and miles to code before i sleep..

coolest videos link( two minutes paper )...
https://www.youtube.com/user/keeroyz/videos
Hotshot5000
OGRE Contributor
OGRE Contributor
Posts: 226
Joined: Thu Oct 14, 2010 12:30 pm
x 56

Re: Feedback wanted: Ogre 2.1 guide

Post by Hotshot5000 »

Great stuff! More documentation is what Ogre needs right now. I remember wasting some hours the first time I tried building Ogre 2.1 because I didn't know how to configure cmake and where to get ogre deps from. The problem is, how do you strike a balance between configurability and ease of use. From what I see Ogre addresses itself to the more advanced programmer, it's definitely not for a beginner.

The question is, is this good for the project? A few experts vs an ocean of newbies? Unity is far more popular than Ogre because it addresses itself to complete beginners. My belief is that Ogre needs much more exposure, while not devolving the forums to the usual dumb questions that you see on unity forums. But how do we do that? I have no answer now, but I think it's an important subject to discuss in another topic...

Back to the topic, when/if the android port that I did gets merged to the main line, ask me for some documentation on how to get android running and I'll provide it. Right now I have written some things here: http://www.ogre3d.org/forums/viewtopic.php?f=25&t=92121

Also, if you have time, do check out the libgdx installer: http://libgdx.badlogicgames.com/download.html. They've made a little java application that helps with creating a project and automagically downloads and configures everything just by ticking some checkboxes. That is what beginners like. Getting things running ASAP is important in getting an audience. Of course, creating an application like that takes time and effort...
User avatar
Zonder
Ogre Magi
Posts: 1168
Joined: Mon Aug 04, 2008 7:51 pm
Location: Manchester - England
x 73

Re: Feedback wanted: Ogre 2.1 guide

Post by Zonder »

Got time to follow these instructions today all went perfectly fine I used Visual Studio 2017 and a 64bit build :)

EDIT: This was for the first part of guide Setting up ogre will follow next guide soon only tried a few random samples as well
There are 10 types of people in the world: Those who understand binary, and those who don't...
screwt
Kobold
Posts: 29
Joined: Wed Feb 28, 2007 9:18 am
x 2

Re: Feedback wanted: Ogre 2.1 guide

Post by screwt »

Hello,

Just a little note, the compisiting stuff in ogre2.1 is not verfy visible i think info about this step should be added to the chapter "Using Ogre in your App" or in an other one just after.
In deed i spent tow days understanding that EmptyProject is not casting shadows, because of the default compositing setup, see:

https://bitbucket.org/sinbad/ogre/src/a ... ect.cpp-41

However, the 2.0 Samples helped me to understand, see:

https://bitbucket.org/sinbad/ogre/src/a ... als.cpp-29

After adding *.compostor files in the resource2.cfg and setup the compositor correctly , my shadow were casted.
User avatar
dark_sylinc
OGRE Team Member
OGRE Team Member
Posts: 5296
Joined: Sat Jul 21, 2007 4:55 pm
Location: Buenos Aires, Argentina
x 1278
Contact:

Re: Feedback wanted: Ogre 2.1 guide

Post by dark_sylinc »

I'm keeping this reply short because I've been really sick this weak.

What I can say is: Ahh! all good points! Thanks and keep giving feedback! :)
hedphelym
Gremlin
Posts: 180
Joined: Tue Nov 25, 2008 10:58 am
Location: Kristiansand, Norway
x 23
Contact:

Re: Feedback wanted: Ogre 2.1 guide

Post by hedphelym »

I initially wrote that I had issues building samples and with the dependency directory outside Ogre folder,
but now I cloned the latest this morning, and followed the guide once more, and everything works as expected (windows).
hyyou
Gremlin
Posts: 173
Joined: Wed Feb 03, 2016 2:24 am
x 17
Contact:

Re: Feedback wanted: Ogre 2.1 guide

Post by hyyou »

Thank for your great afford.

Are there any chance that "How to set up project with custom HLMS implementation" (trello card) will happen soon? :oops:

My custom HLMS implementation (modify from the great example Kinslore's hlmsground) is really a mess.
.... kinda want to rewrite it. :D
Arkiruthis
Gremlin
Posts: 178
Joined: Fri Dec 24, 2010 7:55 pm
x 10

Re: Feedback wanted: Ogre 2.1 guide

Post by Arkiruthis »

hyyou wrote: Are there any chance that "How to set up project with custom HLMS implementation" (trello card) will happen soon? :oops:
Those are excellent guides you've written, but like hyyou, custom HLMS is the biggest trouble for me moving to 2.0, given previously I was very used to using Cg for all my materials, many of which didn't fit into the PBS or Unlit mould due to being specialised terrain materials or just not in the usual mould.

I had a custom HLMS running but I suspect it was riddled with bugs (my own) and I had a nagging sense that it wasn't coded 'right'?

So yeah, would be great to have a guide where someone actually starts at the ground level and builds one up, showing what needs to be implemented and, perhaps more importantly, what is safe to leave out!
hyyou
Gremlin
Posts: 173
Joined: Wed Feb 03, 2016 2:24 am
x 17
Contact:

Re: Feedback wanted: Ogre 2.1 guide

Post by hyyou »

(feedback)
IMHO, things are nicely explained and easy to follow, except a few difficulty that may occur only to me
(Windows 7, 32 bits, VS2015):-

1. In Downloading Ogre (https://ogrecave.github.io/ogre/api/2.1 ... ndows.html), I believe the code (and the related image) is wrong :-

Code: Select all

hg clone https://bitbucket.org/cabalistic/ogredeps Dependencies
                                                    ^ "Dependencies" should be removed        
If I follow the tutorial precisely, I will get an error at tortoiseHg "repository not found".

2. In Building Ogre> step 7, I faced this error :-

Code: Select all

1>D:\__installed\prog_232_ogre3D\inst_08\ogre\OgreMain\src\OgreSceneManager.cpp : 
fatal error C1128: number of sections exceeded object file format limit: compile with /bigobj
so I need to add the flag :

Code: Select all

Solution Explorer > OgreMain > (right click) property pages > C/C++ > Command Line
change from  "/Zm256" to  "/Zm256 /bigobj" (both without quote)
3. In Speeding things up (https://ogrecave.github.io/ogre/api/2.1 ... urApp.html), I believe the table Parameter-Description should appear before Folder-Description.
As a cmake newbie, I misunderstood that the first table (Folder-Description) is what I should fill in.

4. In Creating your application with 'EmptyProject' script
It would be nice to shows how to use "symbolic links". (this link might be good https://www.howtogeek.com/howto/16226/c ... -or-linux/)
This is my first time for such feature, so it is scary that I have to use an external website.

5. In Creating your application with 'EmptyProject' script

I faced an issue at step 3. I got this error (or warning) at CMake when press "Configure":-

Code: Select all

SDL2MAIN_LIBRARY = SDL2MAIN_LIBRARY-NOTFOUND
SDL2_INCLUDE = SDL2_INCLUDE_DIR-NOTFOUND
SDL2_LIBRARY_TEMP = SDL2_LIBRARY_TEMP-NOTFOUND
I solved it by following spookyboo's guide (http://www.ogre3d.org/tikiwiki/tiki-ind ... with+CMake) :-
1) open .sln in "Dependencies\src\SDL2" and compile it both debug & release.
2) fill the cmake's textbox that show error as :-

Code: Select all

SDL2MAIN_LIBRARY = (something)/EmptyProject/Dependencies/ogre/ogredeps/src/SDL2/VisualC/Win32/Release/SDL2main.lib
SDL2_INCLUDE_DIR = (something)/EmptyProject/Dependencies/ogre/ogredeps/src/SDL2/include
SDL2_LIBRARY_TEMP = (something)/EmptyProject/Dependencies/ogre/ogredeps/src/SDL2/VisualC/Win32/Release/SDL2.lib
6. After all the steps in both links, I can compile, but can't run 'EmptyProject'.

Code: Select all

The program can't start because SDL2.dll is missing from your computer. 
  Try reinstalling the program to fix this problem.

I fixed it by copy a file "SDL2.dll" from "Dependencies\ogre\ogredeps\src\SDL2\VisualC\Win32\Release" to
"(something)\EmptyProject\bin\Release"

7. Finally, I can run, but there is no rendering system to select.
The problems seem to be at "Root::loadPlugins...", it doesn't find a pluginsfile = "../Data/plugins_d.cfg".

1) make sure "EmptyProject\bin\Data" has some files like :- ogre.cfg, plugins_d.cfg
2) make sure "EmptyProject\bin\Debug\Plugins" has some files like :- RenderSystem_GL3Plus_d.dll, RenderSystem_Direct3D11_d.dll
3) Project property> General> Output directory = (something)\EmptyProject\bin\$(Configuration)

Ogre seems to expect a correct "Data" folder to place at "../Data" relative to "Project property> General> Output directory".

8. The rendering window (GL3+) appear but all black and glitchy (seem like non-responding), and I can't use any program beside Task Manager.
- I solved it by setting it to non-full screen. I doubt full-screen is not supported.
Edit: I can finally make it full-screen. Note that if a program crashes while Ogre is in Full-screen mode, the Windows will freeze in a short period.
For debugging, it is better to test in non-full-screen.

Thank for writing this tutorial and cmake script.
Despite the difficulty I faced, it is far easier than before.
Last edited by hyyou on Sat Feb 03, 2018 3:19 am, edited 1 time in total.
123iamking
Gremlin
Posts: 152
Joined: Sat Aug 12, 2017 4:16 pm
x 4

Re: Feedback wanted: Ogre 2.1 guide

Post by 123iamking »

The key thing to set up Ogre successfully is the folder path structure.
The folder structure Ogre expect is like this:

1. Ogre source repository: .\Ogre (ex: C:\EmptyProject\Dependencies\Ogre)
2. Ogre binary: .\Ogre\build (ex: C:\EmptyProject\Dependencies\Ogre\build)
3. Ogre dependencies: .\Ogre\Dependencies (ex: C:\EmptyProject\Dependencies\Ogre\Dependencies) (refer Setting up Ogre for the content of this folder - currently it contains bin,include,lib folder)

The idea is Ogre repository & Ogre binary & Ogre dependencies is in the folder Dependencies of Ogre Empty project, so set up the folder structure like this:
C:\EmptyProject
C:\EmptyProject\Dependencies\Ogre
C:\EmptyProject\Dependencies\Ogre\build
C:\EmptyProject\Dependencies\Ogre\Dependencies
And use CMake to make binary of EmptyProject in C:\EmptyProject\build, hit configure and everything work just fine - no warning, no error.

So I think you should emphases this folder structure as a step by step tutorial - so the newbie will not get stumble around with error and warning of CMake.
User avatar
Aiden
Halfling
Posts: 54
Joined: Fri Jul 14, 2017 3:16 pm
x 5

Re: Feedback wanted: Ogre 2.1 guide

Post by Aiden »

I've successfully managed to build Ogre 2.1, didn't use any guide as I'm used to building Ogre.
I use my 1.10 dependancies, everything went fine except for /bigopt bit.
After building I had to fix resource_2.cfg where we have

Code: Select all

Zip=DebugPack.zip
to

Code: Select all

Zip=../../media/packs/DebugPack.zip
My release build runs just fine, I did the same for debug build which wasn't running with a slightly different error

Code: Select all

!imroot &&"deinitialize not called"
This I cannot solve. I've managed to port my code from 1.9---->1.10(ogrecave) and lastly 2.0
I'm stuck on 2.1 but I'm not giving up yet, but it has been a good way to understand how ogre works.
I prefer being on the latest branch even if it's not stable at least there might be support.
User avatar
Aiden
Halfling
Posts: 54
Joined: Fri Jul 14, 2017 3:16 pm
x 5

Re: Feedback wanted: Ogre 2.1 guide

Post by Aiden »

123iamking wrote:The key thing to set up Ogre successfully is the folder path structure.
The folder structure Ogre expect is like this:

1. Ogre source repository: .\Ogre (ex: C:\EmptyProject\Dependencies\Ogre)
2. Ogre binary: .\Ogre\build (ex: C:\EmptyProject\Dependencies\Ogre\build)
3. Ogre dependencies: .\Ogre\Dependencies (ex: C:\EmptyProject\Dependencies\Ogre\Dependencies) (refer Setting up Ogre for the content of this folder - currently it contains bin,include,lib folder)

The idea is Ogre repository & Ogre binary & Ogre dependencies is in the folder Dependencies of Ogre Empty project, so set up the folder structure like this:
C:\EmptyProject
C:\EmptyProject\Dependencies\Ogre
C:\EmptyProject\Dependencies\Ogre\build
C:\EmptyProject\Dependencies\Ogre\Dependencies
And use CMake to make binary of EmptyProject in C:\EmptyProject\build, hit configure and everything work just fine - no warning, no error.

So I think you should emphases this folder structure as a step by step tutorial - so the newbie will not get stumble around with error and warning of CMake.
I think this system will have to be changed as it requires one to make copy of ogre+dependancies into the EmptyProject dir.
It's much easier if one could just add a path on cmake then it does everything automatically.
User avatar
Aiden
Halfling
Posts: 54
Joined: Fri Jul 14, 2017 3:16 pm
x 5

Re: Feedback wanted: Ogre 2.1 guide

Post by Aiden »

My bad all I needed was to use cmake right, Ogre 2.1 is so easy to setup.
123iamking
Gremlin
Posts: 152
Joined: Sat Aug 12, 2017 4:16 pm
x 4

Re: Feedback wanted: Ogre 2.1 guide

Post by 123iamking »

Aiden wrote: I think this system will have to be changed as it requires one to make copy of ogre+dependancies into the EmptyProject dir.
It's much easier if one could just add a path on cmake then it does everything automatically.
Of course you can do that: http://www.ogre3d.org/forums/viewtopic.php?f=25&t=93262
IndieGuy11
Halfling
Posts: 50
Joined: Fri May 19, 2017 8:09 pm
x 2

Re: Feedback wanted: Ogre 2.1 guide

Post by IndieGuy11 »

IMO,

The examples are good. I wish they were in a single program, and not just 1 program that loads the DLL for the example. Because it makes it harder to follow things (I know it uses a lot of the same code), but sometimes it can seem like some of the important magic is hidden.

Other than that, I wish each example had a mini outline of calls/functions that needs to happen, and what they do, so its not so easy to miss a step (because things happen under the hood). Some of the examples are good at this, like the CustomRenderable, it clearly marks warnings!

Good job ... things are looking great!
tlogre
Gnoblar
Posts: 18
Joined: Tue Oct 03, 2017 7:27 pm
x 1

Re: Feedback wanted: Ogre 2.1 guide

Post by tlogre »

The build process went fine Except:

I received the compile errors shown below. I could eliminate the errors by adding a #include of OgreProfiler.h in each of the .cpp fies

I am using VS 2017

Code: Select all

2>E:\user\Develop\Ogre3D\Ogre\RenderSystems\Direct3D11\src\OgreD3D11RenderWindow.cpp(546): error C3861: 'OgreProfileBeginDynamic': identifier not found
2>E:\user\Develop\Ogre3D\Ogre\RenderSystems\Direct3D11\src\OgreD3D11RenderWindow.cpp(547): error C3861: 'OgreProfileGpuBeginDynamic': identifier not found
2>E:\user\Develop\Ogre3D\Ogre\RenderSystems\Direct3D11\src\OgreD3D11RenderWindow.cpp(566): error C3861: 'OgreProfileEnd': identifier not found
2>E:\user\Develop\Ogre3D\Ogre\RenderSystems\Direct3D11\src\OgreD3D11RenderWindow.cpp(567): error C3861: 'OgreProfileGpuEnd': identifier not found
2>E:\user\Develop\Ogre3D\Ogre\RenderSystems\Direct3D11\src\OgreD3D11RenderWindow.cpp(570): error C3861: 'OgreProfileBeginDynamic': identifier not found
2>E:\user\Develop\Ogre3D\Ogre\RenderSystems\Direct3D11\src\OgreD3D11RenderWindow.cpp(571): error C3861: 'OgreProfileGpuBeginDynamic': identifier not found
2>E:\user\Develop\Ogre3D\Ogre\RenderSystems\Direct3D11\src\OgreD3D11RenderWindow.cpp(579): error C3861: 'OgreProfileEnd': identifier not found
2>E:\user\Develop\Ogre3D\Ogre\RenderSystems\Direct3D11\src\OgreD3D11RenderWindow.cpp(580): error C3861: 'OgreProfileGpuEnd': identifier not found
3>E:\user\Develop\Ogre3D\Ogre\RenderSystems\GL3Plus\src\windowing\win32\OgreWin32Window.cpp(806): warning C4838: conversion from 'unsigned int' to 'LONG' requires a narrowing conversion
3>E:\user\Develop\Ogre3D\Ogre\RenderSystems\GL3Plus\src\windowing\win32\OgreWin32Window.cpp(874): error C3861: 'OgreProfileBeginDynamic': identifier not found
3>E:\user\Develop\Ogre3D\Ogre\RenderSystems\GL3Plus\src\windowing\win32\OgreWin32Window.cpp(875): error C3861: 'OgreProfileGpuBeginDynamic': identifier not found
3>E:\user\Develop\Ogre3D\Ogre\RenderSystems\GL3Plus\src\windowing\win32\OgreWin32Window.cpp(877): error C3861: 'OgreProfileEnd': identifier not found
3>E:\user\Develop\Ogre3D\Ogre\RenderSystems\GL3Plus\src\windowing\win32\OgreWin32Window.cpp(878): error C3861: 'OgreProfileGpuEnd': identifier not found
User avatar
dark_sylinc
OGRE Team Member
OGRE Team Member
Posts: 5296
Joined: Sat Jul 21, 2007 4:55 pm
Location: Buenos Aires, Argentina
x 1278
Contact:

Re: Feedback wanted: Ogre 2.1 guide

Post by dark_sylinc »

I'm sorry :oops:
I introduced that bug 2 days ago and fixed it today.

Just pull again and recompile.
tlogre
Gnoblar
Posts: 18
Joined: Tue Oct 03, 2017 7:27 pm
x 1

Re: Feedback wanted: Ogre 2.1 guide

Post by tlogre »

That Fixed it... Thanks!
dark_sylinc wrote:I'm sorry :oops:
I introduced that bug 2 days ago and fixed it today.

Just pull again and recompile.
tlogre
Gnoblar
Posts: 18
Joined: Tue Oct 03, 2017 7:27 pm
x 1

Re: Feedback wanted: Ogre 2.1 guide

Post by tlogre »

That fixed it... Thanks
DainiusVaiksnys
Gnoblar
Posts: 20
Joined: Wed Apr 01, 2015 3:03 pm
x 2

Re: Feedback wanted: Ogre 2.1 guide

Post by DainiusVaiksnys »

Arkiruthis wrote:
hyyou wrote: Are there any chance that "How to set up project with custom HLMS implementation" (trello card) will happen soon? :oops:
Those are excellent guides you've written, but like hyyou, custom HLMS is the biggest trouble for me moving to 2.0, given previously I was very used to using Cg for all my materials, many of which didn't fit into the PBS or Unlit mould due to being specialised terrain materials or just not in the usual mould.

I had a custom HLMS running but I suspect it was riddled with bugs (my own) and I had a nagging sense that it wasn't coded 'right'?

So yeah, would be great to have a guide where someone actually starts at the ground level and builds one up, showing what needs to be implemented and, perhaps more importantly, what is safe to leave out!
That's my thoughts exactly! I am trying to create a simple custom HLMS implementation and I just can't break through. HlmsUnlit is already way too complex to be a starting point. I think that a tutorial on custom HLMS is a must. Is there a chance that a donation would move this up in the priority list ? :)
Post Reply