Wednesday, 25 July 2007

Bookcase in the North

I've added one of Harek's contributions to the game. It's inside the house, on every north wall for now! :-) Thank Harek that we have that great sight now! I plan to add his table and chairs too later soon. Meanwhile I had problems with the grass not darkening with the lights going down... I will be working on the solution.


Charlie said...

Aside from the grass animations, the other graphical issue I see with jcrpg is the gaininess of the renders. Is this intentional?

On grass shaders, probably not helpful but an interesting overview:

Paul said...

Which part is grainy? All the parts or something particular? I may do some smoothing later on the textures, besides I will surely review all of them if the models will be more complete, but right now using mipmapping (which smooths out things) looks uglier than grainy textures.

Thanks for the link, i will run through it! :-)

Paul said...

Charlie, I've peeked into sauerbraten's grass generation C++ code, but basically it uses a similar texture based quad generation backed by vertext shading. That means I will have to study how really good looking grass can be put together out of quads, and maybe use vertex shading if I learn how to do it. But the basics are the same right now too. I will look into vertext shaders further, but rather because of the wind effect to be faster, not because it will look another.

So all in all, don't expect big changes in grass (maybe more new textures will be added later), except how the wind effect will be done!

bri (dragonbait) said...

Do you need sample wall/dungeon textures? If so what are the width + height specifications and what type of image file do you use? .png .jpg .bmp

Paul said...

Yeah, if you have good texture please share with me. If you can share them on web it would be nice, but if not so I already sent you an email to your icestorm email adress, to specify my email to you! :-D Thanks in advance!

Anonymous said...


First of all - keep up good work :) I think this project has bright future :)

But I'm concerned about speed... On 800x600x32bpp fullscreen with standard (from SVN) i have 3-5 fps ...

My specs: Sempron 2500 64 bit (socket 754), 1GB DDR RAM and geforce 6100 (integrated). Windows XP, Java 1.6.

I know that my graphics card is crap, but i think it should work faster (for example sauerbraten worked quite good).

Do you plan to spend some time optimizing engine? It would be sad if classic rpg engine requires modern computers...

Paul said...

I am testing it on a 6200 GO laptop, and it is way much faster in 1024x768. I plan to leave place for performance tuning, and hope to reach more optimizations too!

Can you please detail what RENDER_DISTANCE and RENDER_GRASS_DISTANCE are you using? ( I use to commit config.porperties once in a while, so please let me be sure about your settings.) Can you also try setting them to lower values?

Thanks for testing, and your positivity on jcrpg! :-)

Anonymous said...

Both were set to 8. (it was from svn head)

I changed RENDER_DISTANCE to 5 and RENDER_GRASS_DISTANCE to 0. FPS was 7 - 10.

For comparison - i launched Terrain trees demo:
(unfortunately i can't change resolutiodn - it always run at 640x480)
I had 100 - 200 fps.

Paul said...

Please try setting bloom to false in, if you haven't tried it yet! Seems weird, that low FPS! :-S

Anonymous said...

Without bloom i still have 10 fps. It's really strange

Paul said...

If you can post your startup log in a comment, maybe I can see something.

Charlie said...

The graininess is a general thing from any screenshot. It seems like you have gotten the mipmapping wrong somehow:

It should make textures appear smooth at a distance rather than grainy/pixelated like they currently are.

Anonymous said...

I just run jcrpg with some i just found profiler:

Here is part of profilers log, maybe this could be useful:

| Most expensive methods summarized |

Count Time Pct Location
===== ==== === ========
22 25300,8 34,3 com.jmex.model.XMLparser.Converters.TDSChunkingFiles.TDSFile:putChildMeshes
2507841 12637,3 17,1 com.jme.math.Vector3f:equals
103 7010,0 9,5 com.jme.scene.batch.GeomBatch:lockMeshes
83 2619,3 3,5 com.jme.util.TextureManager:loadImage
55 2487,7 3,4 org.lwjgl.opengl.GL11:glTexImage2D
60139 1647,3 2,2 com.jme.util.export.binary.BinaryOutputCapsule:write
1096 1532,9 2,1 com.jme.bounding.BoundingSphere:recurseMini
104295 1047,0 1,4 com.jme.util.export.ByteUtils:convertToBytes
2858 771,1 1,0 com.jme.scene.SceneElement:updateRenderState
46718 741,1 1,0 com.jme.util.export.ByteUtils:convertFloatFromBytes
47755 691,5 0,9 com.jme.util.export.binary.BinaryInputCapsule:readFloat
84519 639,4 0,9 com.jme.util.export.ByteUtils:convertIntFromBytes
98719 546,7 0,7 com.jme.util.geom.BufferUtils:populateFromBuffer
138 499,2 0,7 com.jme.util.export.binary.BinaryInputCapsule:readFloatBuffer
90876 483,8 0,7 com.jme.scene.SceneElement:getRenderState

Anonymous said...

Startup log:

16 ms
16 ms
**** RENDER ****
1-RSTAT = N0 A0 R0 -- time: 32
1-RSTAT = N0 A0 R0 -- time: 47
getRenderedSpace size=357
hmCurrentCubes: 0
2007-07-25 22:27:20 com.jme.scene.batch.GeomBatch lockMeshes
WARNING: This GeomBatch already has locked meshes. (Use unlockMeshes to clear)
2007-07-25 22:27:20 com.jme.scene.batch.GeomBatch lockMeshes
WARNING: This GeomBatch already has locked meshes. (Use unlockMeshes to clear)

(later there are many same warnings aoubt lockmeshes)

Paul said...

Mipmap is okay, but I don't use it for screenshots, because I find it uglier than grainy textures. It smooths it too much for my taste! :-) But you can switch it on in the too...

Anon: this doesn't help me much, as I don't have basis for comparison. One more question: how much video memory your card has? Another can you please try TEXTURE_QUAL_HIGH=false in config.prop?

Paul said...

The Warnings I have them too, it shouldnt cause any trouble!