Lime - Yet another engine

Re: Lime - Yet another engine

Postby bazhenovc » 08 Nov 2011, 17:23

The command is:
{l Code}: {l Select All Code}
git pull
bazhenovc
 
Posts: 61
Joined: 12 Oct 2011, 18:39

Re: Lime - Yet another engine

Postby rogerdv » 08 Nov 2011, 18:35

git pull https://github.com/bazhenovc/lime.git

{l Code}: {l Select All Code}
fatal: Not a git repository (or any parent up to mount parent )
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
User avatar
rogerdv
 
Posts: 289
Joined: 10 Dec 2009, 18:26

Re: Lime - Yet another engine

Postby bazhenovc » 08 Nov 2011, 18:49

Whoops :)

git pull should be used in the local clone
Try something like this:
{l Code}: {l Select All Code}
git clone https://github.com/bazhenovc/lime.git

And update it with
{l Code}: {l Select All Code}
cd lime
git pull
bazhenovc
 
Posts: 61
Joined: 12 Oct 2011, 18:39

Re: Lime - Yet another engine

Postby rogerdv » 08 Nov 2011, 19:07

it is working now!
User avatar
rogerdv
 
Posts: 289
Joined: 10 Dec 2009, 18:26

Re: Lime - Yet another engine

Postby bazhenovc » 08 Nov 2011, 21:29

Great :)
bazhenovc
 
Posts: 61
Joined: 12 Oct 2011, 18:39

Re: Lime - Yet another engine

Postby bazhenovc » 11 Nov 2011, 18:23

So what we have end up with?
bazhenovc
 
Posts: 61
Joined: 12 Oct 2011, 18:39

Re: Lime - Yet another engine

Postby rogerdv » 11 Nov 2011, 19:50

I got another error compiling. I will post about that later (I have ubuntu 11.10 at home, without internet connection)
User avatar
rogerdv
 
Posts: 289
Joined: 10 Dec 2009, 18:26

Re: Lime - Yet another engine

Postby rogerdv » 14 Nov 2011, 14:35

Ok, made it work under 11.10. Installed Bullet 2.79 and now it is being correctly detected. Also, I uncommented the bindings and got no error. I manually built SceneEd and ran it, everything seems to work except for the first demo:
{l Code}: {l Select All Code}
Linking CXX executable ../../0.WindowAndEvents
../../libLimeRenderGL.so: undefined reference to `Lime::Log::printF(char const*, ...)'
../../libLimeRenderGL.so: undefined reference to `Lime::ConfigFile::ConfigFile(char const*)'
../../libLimeRenderGL.so: undefined reference to `Lime::nextValue()'
../../libLimeRenderGL.so: undefined reference to `Lime::Log::~Log()'
../../libLimeRenderGL.so: undefined reference to `Lime::Log::Log()'
../../libLimeRenderGL.so: undefined reference to `Lime::Log::printLn(char const*)'
../../libLimeRenderGL.so: undefined reference to `Lime::ConfigFile::getValue(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
../../libLimeRenderGL.so: undefined reference to `Lime::ConfigFile::~ConfigFile()'
collect2: ld devolvió el estado de salida 1
make[2]: *** [0.WindowAndEvents] Error 1
make[1]: *** [Samples/0.WindowAndEvents/CMakeFiles/0.WindowAndEvents.dir/all] Error 2
make: *** [all] Error 2


I get the same error when I try to link my own test application. But the rest of the samples compile, they just produce an error about a missing opengl capability (Im using an onboard intel at home).
User avatar
rogerdv
 
Posts: 289
Joined: 10 Dec 2009, 18:26

Re: Lime - Yet another engine

Postby bazhenovc » 14 Nov 2011, 14:49

Linking errors fixed, checkout the latest revision.

I think that integrated intel cards have no OpenGL 3.3+ support, which is required to use Lime :)
bazhenovc
 
Posts: 61
Joined: 12 Oct 2011, 18:39

Re: Lime - Yet another engine

Postby rogerdv » 14 Nov 2011, 15:28

Ok, compiled and everything works here (with a geforce 9500gt). Will do some basic demo app later. By the way, can you illustrate how to create models?
User avatar
rogerdv
 
Posts: 289
Joined: 10 Dec 2009, 18:26

Re: Lime - Yet another engine

Postby bazhenovc » 14 Nov 2011, 18:21

The most straightforward way is to fill mesh buffers in the C++ code and use
{l Code}: {l Select All Code}
Mesh::toFile
method. For example, to create a cube:
{l Code}: {l Select All Code}
Vertex vertices[N] =
{
    {-1, -1, 1}, // Position
    {0, 0}, // Texture coords
    {0, 0, 1}  // Normal
....
};
unsigned int indices[M] = {0, 1, 2, ...};

mesh->bind();
mesh->getIndexBuffer()->bind();
mesh->getIndexBuffer()->copyData(indices, M, sizeof(unsigned int), BU_STATIC);
mesh->getIndexBuffer()->unbind();

mesh->getVertexBuffer()->bind();
mesh->getVertexBuffer()->copyData(vertices, N, sizeof(Vertex), BU_STATIC);
mesh->getVertexBuffer()->unbind();
mesh->unbind();


The .fmesh files are also very simple:
1 byte 'magic number'
4 bytes index count
indices (each is 4byte unsigned integer)
4 bytes vertex count
vertices (each is a Vertex itself)

I also wrote a blender exporter(used to create the models in Media/Models), however i`ve lost it due to hard disk failure :(
bazhenovc
 
Posts: 61
Joined: 12 Oct 2011, 18:39

Re: Lime - Yet another engine

Postby rogerdv » 14 Nov 2011, 21:13

Ok, let me know if you rewrite the Blender exporter. Would be possible to use the xml generated by Ogre3d exporters to create meshes?
User avatar
rogerdv
 
Posts: 289
Joined: 10 Dec 2009, 18:26

Re: Lime - Yet another engine

Postby bazhenovc » 14 Nov 2011, 22:00

Yes, i think that this is possible. It is up to the converter
bazhenovc
 
Posts: 61
Joined: 12 Oct 2011, 18:39

Re: Lime - Yet another engine

Postby rogerdv » 24 Nov 2011, 17:47

No commints in a while, is the project already dead?
User avatar
rogerdv
 
Posts: 289
Joined: 10 Dec 2009, 18:26

Re: Lime - Yet another engine

Postby bazhenovc » 26 Nov 2011, 14:33

Nope, I just had some other things to do:) Stay tuned, i`ll push some cool new stuff today
bazhenovc
 
Posts: 61
Joined: 12 Oct 2011, 18:39

Re: Lime - Yet another engine

Postby bazhenovc » 26 Nov 2011, 21:36

Okay, here we are:)

The most important news: i`ve implemented skeletal animation and MD5 files support.

And i got up in touch with yet another guy, that will be in charge of Windows support and particle system implementation. Thanks to him, the engine now runs just fine on Windows :)
Attachments
skeletalanimation.png
Skeletal animation
bazhenovc
 
Posts: 61
Joined: 12 Oct 2011, 18:39

Re: Lime - Yet another engine

Postby rogerdv » 28 Nov 2011, 13:46

Great! Back to testing! I have been thinking about implementing some file conversion utility based on Assimp, but still cant underestand how Lime manages animations, apart from having an specific node. Does it has some dump feature, like toFile()?
User avatar
rogerdv
 
Posts: 289
Joined: 10 Dec 2009, 18:26

Re: Lime - Yet another engine

Postby bazhenovc » 28 Nov 2011, 15:41

At the moment animation system is very wet and limited to MD5 meshes and nodes. Generic 'Mesh' has no such feature - it is just a low-level abstract datatype, designed to fullfill one particular puprose - contain discrete 3D data.

However it contains very straightforward serialization/dumping routines: fromFile() and toFile(), like many other resource-classes.

It is subclassed in Md5Mesh, which contains 'current' animation frame, while Md5Animation updates this frame, when needed. And Md5Node encapsulates all this stuff and provides clean and simple interface to create animated characters.

The next step will be 'AnimationSequence' and 'AnimatedNode'. They will allow user to create animated nodes, without thinking about underlying stuff(whether it be skeletal or morph animation). At this point, we can transparently dump/pick animations, like any other engine resources.

This wiki page describes everything quite well: Renderer architecture
bazhenovc
 
Posts: 61
Joined: 12 Oct 2011, 18:39

Re: Lime - Yet another engine

Postby rogerdv » 28 Nov 2011, 21:17

Seems that something is missing:

{l Code}: {l Select All Code}
/home/roger/projects/lime/Lime/source/core/ConfigFile.cc:7:23: error fatal: glm/glm.hpp: No existe el archivo o el directorio
compilación terminada.
make[2]: *** [Lime/source/core/CMakeFiles/LimeCore.dir/ConfigFile.cc.o] Error 1
make[1]: *** [Lime/source/core/CMakeFiles/LimeCore.dir/all] Error 2
make: *** [all] Error 2


Missing glm/glm.hpp, fixed adding it to Cmake. then got this one:

{l Code}: {l Select All Code}
/home/roger/projects/lime/thirdparty/include/AL/al.h:100:37: error: ‘<anonymous>’ tiene un tipo de dato incompleto
/home/roger/projects/lime/thirdparty/include/AL/al.h:100:44: error: uso inválido de ‘ALvoid {aka void}’
In file included from /home/roger/projects/lime/Lime/include/sound/SoundDevice.hh:8:0,
                 from /home/roger/projects/lime/Lime/source/sound/Sound.cc:7:
/home/roger/projects/lime/thirdparty/include/AL/alc.h:56:58: error: ‘<anonymous>’ tiene un tipo de dato incompleto
/home/roger/projects/lime/thirdparty/include/AL/alc.h:56:66: error: uso inválido de ‘ALCvoid {aka void}’
make[2]: *** [Lime/source/sound/CMakeFiles/LimeSound.dir/Sound.cc.o] Error 1
make[1]: *** [Lime/source/sound/CMakeFiles/LimeSound.dir/all] Error 2
make: *** [all] Error 2


<anonimous> incomplete data type
invalid use of ALvoid
User avatar
rogerdv
 
Posts: 289
Joined: 10 Dec 2009, 18:26

Re: Lime - Yet another engine

Postby bazhenovc » 28 Nov 2011, 21:46

The thirdparty folder contains Windows dependencies, it should not be used to build the engine on other OSes. Try 'apt-get'`ing something like 'glm' or 'glm-dev' instead :)
bazhenovc
 
Posts: 61
Joined: 12 Oct 2011, 18:39

Re: Lime - Yet another engine

Postby rogerdv » 28 Nov 2011, 22:46

My mistake. Installed glm and now I get this:

{l Code}: {l Select All Code}
In file included from /usr/include/glm/./gtx/../core/intrinsic_common.hpp:67:0,
                 from /usr/include/glm/./gtx/simd_vec4.hpp:21,
                 from /usr/include/glm/ext.hpp:88,
                 from /home/roger/projects/lime/Lime/include/scene/Camera.hh:8,
                 from /home/roger/projects/lime/Lime/include/scene/SceneNode.hh:11,
                 from /home/roger/projects/lime/Lime/include/scene/MeshSceneNode.hh:7,
                 from /home/roger/projects/lime/Lime/source/scene/MeshSceneNode.cc:5:
/usr/include/glm/./gtx/../core/intrinsic_common.inl: En el constructor ‘glm::detail::ieee754_QNAN::ieee754_QNAN()’:
/usr/include/glm/./gtx/../core/intrinsic_common.inl:21:5: error: inicializaciones para múltiples miembros de ‘glm::detail::ieee754_QNAN’
make[2]: *** [Lime/source/scene/CMakeFiles/LimeScene.dir/MeshSceneNode.cc.o] Error 1
make[1]: *** [Lime/source/scene/CMakeFiles/LimeScene.dir/all] Error 2
make: *** [all] Error 2


Something like "initializations for multiple members of glm::detail...
User avatar
rogerdv
 
Posts: 289
Joined: 10 Dec 2009, 18:26

Re: Lime - Yet another engine

Postby bazhenovc » 28 Nov 2011, 23:05

Okay, this seems to be a SIMD implementation bug in the GLM itself. Pull the new revision, i`ve turned SIMD off.
bazhenovc
 
Posts: 61
Joined: 12 Oct 2011, 18:39

Re: Lime - Yet another engine

Postby rogerdv » 28 Nov 2011, 23:18

Back to the linking problems. but this time the engine was compiled successfully.

{l Code}: {l Select All Code}
Linking CXX executable ../../0.WindowAndEvents
../../libLimeRenderGL.so: undefined reference to `lime::Log::getSingleton()'
../../libLimeRenderGL.so: undefined reference to `lime::ConfigFile::ConfigFile(char const*)'
../../libLimeRenderGL.so: undefined reference to `lime::Log::printLn(char const*)'
../../libLimeRenderGL.so: undefined reference to `lime::ConfigFile::getValue(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
../../libLimeRenderGL.so: undefined reference to `lime::Log::printF(char const*, ...)'
../../libLimeRenderGL.so: undefined reference to `lime::ConfigFile::~ConfigFile()'
collect2: ld devolvió el estado de salida 1
make[2]: *** [0.WindowAndEvents] Error 1
make[1]: *** [Samples/0.WindowAndEvents/CMakeFiles/0.WindowAndEvents.dir/all] Error 2
make: *** [all] Error 2
User avatar
rogerdv
 
Posts: 289
Joined: 10 Dec 2009, 18:26

Re: Lime - Yet another engine

Postby bazhenovc » 28 Nov 2011, 23:24

Whoops, that was my mistake :)

Already fixed.
bazhenovc
 
Posts: 61
Joined: 12 Oct 2011, 18:39

Re: Lime - Yet another engine

Postby rogerdv » 01 Dec 2011, 23:28

Got a problem compiling my test:

{l Code}: {l Select All Code}
../lime/Lime/include/core/RefCounted.hh|29|error: la variable ‘lime::LIME_EXPORT lime::RefCounted’ tiene inicializador pero de tipo de dato incompleto|


lime::RefCounted has initializer, but it is of incomplete data type. Im using Code::blocks and enabled c++00x compatibility.
User avatar
rogerdv
 
Posts: 289
Joined: 10 Dec 2009, 18:26

Who is online

Users browsing this forum: No registered users and 1 guest