Jump to content
Eternal Lands Official Forums
Xaphier

NEW_TEXTURES

Recommended Posts

This is the feedback thread for the NEW_TEXTURES feature. Please post all questions, ideas and errors here.

This are the main changes:

  • The enhanced actor textures are now cached (at the moment 64 textures are cached).
  • Item changes that need a texture rebuild get delayed till the the new texture is ready.
  • The enhanced actor textures are now loaded and merged/masked in background threads (4 threads are used at the moment)
  • DDS images that are compressed using DXT1/DXT3/DXT5 compression are now loaded compressed and given compressed to OpenGL if GL_EXT_texture_compression_s3tc is supported (avoid decompression and than compression)
  • Mipmaps are loaded and used from images (DDS format)
  • Poor Man now tries to use textures with reduced resolution if there are mipmaps in the source image.
  • Nearly all (fonts not) texture source images can have the file extensions .dds, .jpeg, .jpg, .png and .bmp (this is the search order). That also means for map images now jpeg or even pngs can be used (Loading support was there anyway because of SDL_image)
  • Support for unloading of textures. Not done at the moment, but now the cache functions from cache.h are used, so it could be added.
  • Support for direct loading of some packed image formats (RGBA4, R5G6B5, RGB5_A1, L8, A8 and LA8). Only the DDS image loader use it at the moment.
  • More checks to prevent client crash when actor item images have the wrong size
  • Works with the new actor image sizes and new actor mesh, but don't look right with the old ones.

To try that stuff, just add NEW_TEXTURES to the features in your make.conf

Edited by Xaphier

Share this post


Link to post
Share on other sites

So far so good. Map changes are also visibly faster now on my machine. Showing an image instead of black screen on map reloads is also a nice addition :)

Share this post


Link to post
Share on other sites

nice work, especially looking forward to see the texture cache to speed things up.

 

But atm it won't compile for me.

With NEW_TEXTURES, linking fails:

undefined reference to `glCompressedTexImage2D'

Without I get this:

image_loading.c:407:4: error: too many arguments to function 'load_dds'

 

platform: Windows Vista, MinGW, gcc-4.5.2

Share this post


Link to post
Share on other sites

I compiled it with NEW_TEXTURES, but map image on minimap was black... so I updated it from cvs and try to compile again:

image_loading.c: In function ‘load_image_data’:
image_loading.c:407: warning: passing argument 3 of ‘load_dds’ makes pointer from integer without a cast
ddsimage.h:57: note: expected ‘int *’ but argument is of type ‘Uint32’
image_loading.c:407: warning: passing argument 4 of ‘load_dds’ makes pointer from integer without a cast
ddsimage.h:57: note: expected ‘int *’ but argument is of type ‘Uint32’
image_loading.c:407: error: too many arguments to function ‘load_dds’
image_loading.c:407: warning: assignment makes integer from pointer without a cast

Share this post


Link to post
Share on other sites

Compile problem fixed, but my minimap is black:

Zaznaczenie_064.png

don't know if this is related:

textures.c: In function ‘string_hash’:
textures.c:54: warning: this decimal constant is unsigned only in ISO C90

 

edit: minimap problem only with NEW_TEXTURES*

Also problem with map, when I'm inside Irsis sto, and use map to look at evtr, can't get back to Irsis insides.

Edited by krlc

Share this post


Link to post
Share on other sites

Fixed, but borders on minimap don't work right. When I use map it shows the same map in Legend. When I go to continent map it should show me my current map in legend so I can go back, but it doesn't.

elscreen117.png

elscreen118.png

elscreen119.png

Share this post


Link to post
Share on other sites

Wow, nice speed improvements. Map changes are much faster with no noticeable lag while the scene draws for the first time; before it tended to lag a little on first load even though my machine/GPU is way over the required spec for EL. Also apparently gone is the noticeable lag when you approach a place crowed with characters; this appeared to start happening after the last update with the new, larger textures.

 

A couple of issues though.

 

1) The map loading screen is now always the welcome image, before it was mostly a frozen version of the last scene, sometimes a solid colour related some part of the last scene.

 

2) The mini-map image appears to extend over the window border. I can provide an image if required.

 

Video card: GeForce GT 240/PCI/SSE2

Vendor ID: NVIDIA Corporation

OpenGL Version: 3.2.0 NVIDIA 195.36.24

Share this post


Link to post
Share on other sites

I had big FPS drop in MM before, from 60 to about 30... now I increased limit to 90 and I have max. (or min) 60 FPS in MM, this is great :icon13:

Edited by krlc

Share this post


Link to post
Share on other sites

thanks, it compiles now.

 

And with your file the minimap looks like before too.

 

Only glitch I noticed, the whole char gets redrawn (flickers) when you equip an item which not in the cache yet.

Share this post


Link to post
Share on other sites

Yeah. I was thinking about delaying the change till the texture is loaded, but that would force even bigger changes and I first wanted to see if the current stuff works.

Share this post


Link to post
Share on other sites

I am encountering the load_dds problem (Mac OS X 10.6, XCode 4 GM, LLVM GCC4.2).

 

image_loading.c:407: error: too many arguments to function 'load_dds'

image_loading.c: error: Semantic Issue: Too many arguments to function call, expected 4, have 7

 

Of course, I cannot get a build without NEW_TEXTURES either. Same error as above. Odd.

 

Since I am able to build client (with or w/out NEW_TEXTURES) on a 10.5 system using Xcode 3.2 and GCC4.0, this seems to be a compiler/IDE specific problem. Perhaps compiler is being picky about #includes.

Edited by 0ctane

Share this post


Link to post
Share on other sites

the file image_loading.c should only get compiled if NEW_TEXTURES is enabled.

Right. That is what is strange. Seems to work fine on a separate build machine (older Xcode IDE and GCC).

Share this post


Link to post
Share on other sites

Found an other glitch with water tiles now, they looked chunky and flickered randomly as one changed the camera.

 

gallery_31894_12_5223.jpg

 

cvs client with NEW_TEXTURES enables, it was in kusamura at night time. water shater quality = 0

 

I tried against an older client which showed same scene fine. Restarted the new textures client and water was flickering again.

Share this post


Link to post
Share on other sites

Does it also happen if you compile without NEW_TEXTURES from cvs?

Ok, did some new builds one clean without NEW_TEXTURES and one with NEW_TEXTURES and without USE_SIMD.

 

It's defiantly the NEW_TEXTURES what causes the glitches, and it shows more when you have a low view angle.

My guess that's because Kusa has tons of textures and with low view angle more of them are shown and that's where some buffer or counter fails.

Share this post


Link to post
Share on other sites

Sorry, nothing out of the ordinary in error.log and info.log.

Here a better image, water shader quality doesn't affect it btw.

 

gallery_31894_12_16228.jpg

 

Edit:

Time of day doesn't affect it. But if you turn toward the woods with many objects the effects gets stronger.

Edited by Alberich

Share this post


Link to post
Share on other sites
  • I fixed the bug in the encyclopedia that made the items black.
  • I also found and fixed a bug that could be the reason for the problems you had Alberich.
  • Now the item changes of the actors are delayed till the texture is ready, so there should be no more flickering

Share this post


Link to post
Share on other sites

  • I also found and fixed a bug that could be the reason for the problems you had Alberich.

Sadly it's still there.

 

I'm not so sure about the cause anymore, as I noticed the glitch on other maps now too.

Can't you reproduce it? Am I the only one with this bug?

Share this post


Link to post
Share on other sites

  • I also found and fixed a bug that could be the reason for the problems you had Alberich.

Sadly it's still there.

 

I'm not so sure about the cause anymore, as I noticed the glitch on other maps now too.

Can't you reproduce it? Am I the only one with this bug?

I have the same bug, Alberich. Noticed it in SRM walking over the bridge.

Looks like white/black squares (depending on daytime) appear in the water.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×