1,051

(5 replies, posted in Engine)

Are you running the same thing on both ? is it using the FixedRenderer and not the StandardRenderer ?

I know at some point I added a fix in Maratis to force the FixedRenderer if opengl was lower than 2.0, maybe I forget to copy the line to the player.

1,052

(12 replies, posted in Editor)

No sorry, I guess I was not clear, it's an engine problem.
I checked the code that deal with tangent space and normal map in Maratis, and I found that it doesn't support mirrored normal maps. I need to modify some code in the engine and in the default shaders. One information (called handedness) is missing in the current version of the engine to be sure that the binormal vector is correct, and it cannot be added like that, the mesh code need to be modified.

I will try to do that soon, but right now normal map cannot be mirrored, it's just not supported by the engine.

1,053

(12 replies, posted in Editor)

ok, so I found that something is missing in the engine to accept mirrored normal maps,
it is basically the handedness of the binormal, it requires to do some modification of the mesh data by adding a 4th component to the tangents (the handedness) and update the shaders to use it.

1,054

(10 replies, posted in Engine)

ok, I let you doing your tests with it, and let me know if you want me to add something if MRenderingContext is too obscure.

1,055

(4 replies, posted in External Tools)

Hi,

so I made a quick test with the textures you linked,
for me it's working good, but at some point I taught something was wrong,
and in fact I exported a room with bad normals :

- check that your normals are not flipped in blender (use "flip" button or "calculate outside" to be sure)
- enable the "smooth" shading in blender to visualize the real normals (don't use the flat mode).
- and then be sure you are applying the "edge split" modifier to have clean smoothing groups.

It can also be that your UV mapping is reversed in x or y for the floor.

Tell me if it works, and I'll investigate more on this topic.

1,056

(10 replies, posted in Engine)

It's ok to put it on the init, when textures are disabled it draw a normal point,
also, glEnable(GL_POINT_SPRITE) has been removed in openGL 3 (always on).

If you want I can add this point sprite functions, it's fast to do.

1,057

(10 replies, posted in Engine)

Hi,
I was not using point sprite previously (I was manually drawing quads in view space for particles) so I guess some init is missing in MGLContext, try adding "glEnable(GL_POINT_SPRITE);" in MGLContext constructor, if it's enough.

What might need to be added is a wrapper to glPointParameter and glPointSize in MRenderingContext

1,058

(10 replies, posted in Engine)

are you sure "ptr + pos3Ofs" is pointing to an aligned array of floats ?
because if it's not aligned, you might be forced to repack the data into a separate array...

1,059

(10 replies, posted in Engine)

Hi,
I don't understand how your handle your data pointer, it's a bit obscure,
but if "ptr + pos3Ofs" is pointing to your vertices array your problem is "int(flstride) * sizeof(float)"

the number you are supposed to put here is the number of components, so "3" if your vertices are a list of 3d floats like that : x, y, z, x, y, z...
(it can also be an array of MVector3)

you should do : render->setVertexPointer(M_FLOAT, 3, ptr + pos3Ofs);

to give an example, here is a code to draw a 2d quad :

MVector2 vertices[4];
MVector2 texCoords[4];

render->disableNormalArray();
render->disableColorArray();
render->enableVertexArray();
render->enableTexCoordArray();

render->setVertexPointer(M_FLOAT, 2, vertices);
render->setTexCoordPointer(M_FLOAT, 2, texCoords);

render->drawArray(M_PRIMITIVE_TRIANGLE_STRIP, 0, 4);

1,060

(4 replies, posted in External Tools)

Thank you,
I'll try to have an eye at it, it can be a difference in the way maratis uses normal map.

1,061

(1 replies, posted in Engine)

Hi,
waw, it's hot yes !
There is nothing special with the shadows except there are using a lot of shader computation from the 3d card,
so it consumes more energy. But even on my laptop it's not going so high...
There is some improvement going on with Maratis that might make this better, the main loop gets too much priority.

I'm not sure, but what you can try before the new release is to set a lower priority for maratis.exe (if you are on windows).

1,062

(4 replies, posted in External Tools)

Hi,
is it also inverted in blender ? how did you do the normal map ?
With an image software (gimp, photoshop) you might try to reverse the texture's red and green components.

1,063

(16 replies, posted in Showcase)

Hey, it looks like promising !
What quind of game is it ? Adventure ?

1,064

(6 replies, posted in Engine)

I have planned a morphing system to be used additionally to the bone system, for facial animation, deformation etc.

The main code is done in "MMorphingData" but I never had the time to do the morphing data export in the blender plugin, so also never tested.

After there is also some solutions using the current system, for example by separating the mesh in multiple parts, or by using multiple meshs for the face and hidding/showing it by code or using a mma animation (with animating opacity to show/hide).

I just tried with this (blender 2.57b win 32) and it's working :
http://download.blender.org/release/Ble … dows32.zip

If it's not working with you, check you don't have a conflict with python, or it's a problem with blender...

ok, can you try at least blender 2.57 ? because the 2.56 version was unstable with python and I think was only a beta.

wait, what do you mean you did not install blender ? what version of blender are you using ?

1,068

(12 replies, posted in General)

Hi,

welcome ! hope you find what you need with Maratis smile
About your questions, Nistur responded to some,

- the lighting system is a forward one, 4 lights by sub-mehs (the nearests of the scene)
- bone access is done from c++ right now
- for 2d image in 2d space, you can use ortho camera in the editor, or for something more specific you can configure a 2d mode in c++.

The logic will ALWAYS run at the same speed, even on slower computer, only the drawing will be slow down.
If a game draws at 15 fps, the logic will still run at 60 fps using a timer syncro.
So normally you don't have to worry about it.

About the french, oui si c'est vraiment difficile pour toi en anglais, je pourrais toujours traduire rapidement si le sujet est intéressant pour d'autres personnes. Si tu es à l'aise en anglais, je préfère en anglais smile

Did you use this one ? http://www.maratis3d.org/download/marat … bl-257.zip

1,070

(8 replies, posted in Engine)

It's ok, I added it on svn, that was really nothing complicated, just added a virtual function to MBehavior and a standard call to it in MGame::draw.

So there is a draw function that is called by default at the end (but the order can be changed with a custom game).
Just be sure to check the current renderer in case you are using shaders, if you want the behavior to be really generic.

1,071

(8 replies, posted in Engine)

I can make a quick fix and add a draw function in MBehavior at lunch if you want.

1,072

(8 replies, posted in Engine)

In fact, I taught about it and there is a simple way to make it safe without coding anything,
the behavior can just check what is the current renderer to draw with or without shader.

What is unsafe is if a generic behavior try to draw something in 3d using shaders if the renderer is a fixed renderer (without shader).

1,073

(8 replies, posted in Engine)

at some point I had made a draw function in behavior, but I removed it for a simple reason, there is now a renderer system in Maratis (it was not like that before), there is now a standard renderer (shaders) and a fixed renderer, so it's not completely safe to let a general draw behavior function.

I preferred leaving the choice of drawing only non-general using the MGame class, the runEvent was done to be called from MGame, for example from MGame::draw you can call beavior->runEvent with a code.

But, yes it's not completely generic. But for this quind of thing to be allowed, a solution need to be find first to know how to deal with different renderers.

1,074

(5 replies, posted in General)

nice video ! is it a bomberman remake ?

For the bounding box, maybe the 3ds conversion creates bad matrix,
try to apply the matrix by doing : object > apply > rotation & scale

http://www.maratis3d.com/tmp/blender.jpg

1,075

(37 replies, posted in Engine)

sorry, I didn't have time to look at it, busy week-end...
from MGui instance you can create a new window that will be on top of the other, the only thing that need to be done very clean is to be sure the window is destroyed when the plugin is closed.