Back.
First Im going to drop in a convo I had back in 2009 with Magrand I found. Alot of members including u Wolf know this stuff, yet added for others for random reading...lol It may not apply however and Im not sure whats changed with recent engine updates. Though I would drop it in.
Hope u dont mind.
Mark says:
i got so much errors with virus, loading textures error initialising psyshics errors. Sometimes texture error and sometimes physic.
Defy says:
custom media? or re-edits of the sdk?, model packs?
Mark says:
custom
Defy says:
I noticed with the newer updates some media will test fine by itself, or with limited content. though when you add more detail.. a selected enitiy can trigger a error mainly due to the intensity of the object. faces, and or texture. Its a very strang glitch, here is some suggestions.
Once you get to a 0_0 error or something, it has alot to do with a enity, no matter where it is placed. I think a complex entity and/or texture can make the engine spin out. I had to scrap some I wanted, and run with more straight edge ones.
I had a hill entity, and even though I remade it a few different ways. static, dynamic, different texture. It seems the model itself, didnt work in a complex level design.
A glitch found 2 years ago, the editor thinks the model is still there when removed, like written into the code. and still makes the error, or lags out the level. I had one level near the end of completion. I added a few models. then a finishing threads errored appeared. because I made a save, tried one model at a time. test each go. Until I worked out which one played up. and scrapped the media. and replaced it with something else.
Mark says:
cool
Defy says:
Also the collision error, can be from a entity placed to close to another when light is added from random tests over time. Its trial and error. I found after light testing, more lights indoor can be faster loading, than less lights outdoor. though if you have shaders, shadows present, lights are rendered on the directions hitting models and back and forth of segments. like arrows or something, not really sure.
A complex entity, works nice by itself, add heaps around it, and boom. something may tweak.
Ok onto Textures.
I will be droping in various content here from other sources, however I will add links.
Quote: "I suggest you always use DXT 1 for your textures unless they have alpha (no RGB quality difference, so smaller files). Use DXT5 for alphas unless it's a simple alpha (uniform transparency, with a few shades), in which case use DXT3. -Avid"
Quote: "saved in DDS, DXT1-5 recommend DXT3 for no alpha, DXT5 with alpha using floating point NOT integer colours (this is so shaders can work better, especially HDR which really requires light-indexing and saves per-shader conversion) as these sit smaller in memory than ARGB/XRGB 32bit in memory
also highly recommend DDS with 3-6 MipMap Levels (depending on original size) and also use a Triangle Filtering for compression, as it comes out better quality and also produces higher quality with Bilinear or Trilinear Filtering. Aniostropic will ignore it, but then DBP doesn't support that so doesn't matter. In-fact I'm fairly sure it still only uses Bilinear.
You don't want the DBP Engine to take over MipMapping, EVER. It takes up far more space than it needs to; defeating the point. Not to mention their mipmap engine is truely crap quality.. it's right up there with Ogre3D which flips quite abruptly and becomes quite reminiscent of late 90s games when this technology was "new" - Raven"
Quote: "Quote: "Also of note is that FPSC automatically converts the textures to .dds format."
DDS itself, supports a buttload of formats.
It defaults to ARGB 32-bit (A8R8B8G8), and I'd be surprised if anyone at TGC had the common sense to change this default behaviour.. or feel it was worth their time using D3DX to convert them to DXT1-5 formats instead, that load quicker, run leaner and just do a better damn job than most engines texture systems for the advanced features as they're directly being done via the graphics card and api.
if FPSC detects a DDS is already in use it just copies it, so believe me creating them in that format to start with using the nvidia dds tools is just freaking invalueable.
especially when you consider:
an A8R8G8B8 512x512 DDS will take roughly 3s to load/commit
the same texture with pre-set mipmaps, filtering in DXT5 format will take <1s to load.
When we're talking the amount of media that FPSC loads on even a simple couple of room games we're looking at dropping loading time doing it with pre-set DDS over DBP DDS of almost 1/4 of the time, if not more.
This can mean the difference between a game loading in 10minutes and in 2.5minutes! - Raven"
http://forum.thegamecreators.com/?m=forum_view&t=114462&b=24
Quote: "The texture has to be in .dds format and no compression should be used. If you do use compression only dxt1 or dxt5 should be used. - FPSC google code."
This next section is for Celestia, however it has some good info that may apply.
Quote: "The pixels are assumed to be square. This size restriction is built into the design of most graphics chipsets. Display packages that allow surface textures with other sizes actually have to rescale the images before they use them. It's better to design your images at an appropriate size to begin with. This provides better performance and prevents loss of detail due to scaling."
Quote: "DXT1, DXT3 and DXT5. DXT1 is the smallest. It contains only a single highly compressed picture. much like a JPEG image. DXT3 contains two somewhat compressed texture maps: the primary image and an Alpha channel. It's often used instead of a PNG file. A DDS file created in DXT1C or DXT5 format can contain multiple texture images. These "Mipmaps" in a DXT file are at progressively lower resolutions and can be created automatically by the NVDXT utility. The graphics hardware will use the image which is at the appropriate resolution for the size that the object is being shown on the screen. This results in better performance for objects that occupy fewer pixels."
http://www.lns.cornell.edu/~seb/celestia/textures.html#1.0
Quote: "DXT is a lossy compression based on packing pixels into 4x4 blocks with paletted colors and interpolated colors. This results in an 8:1 DXT1 and 4:1 DXT5 constant compression file size. Since video memory and texture pool resources are fixed for a specific platform and hardware, a balance must be struck between texture resolution and resource usage. The following table lists the texture memory requirements for DXT1 and DXT5 textures at various common resolutions with full mips (1x1 up to full native mip0). Note that the memory requirements are near-constant multiples of the texture resolution ratio, and that DXT5 textures require near-twice the memory of their DXT1 counterpart.
Since the resolution to compression ratio is a constant, to calculate the memory requirements for a texture resolution not listed here simply multiply the resolution ratios. For example, a 1024x512 texture would be one-half the memory requirements of a 1024x1024 texture.
The table data was compiled from textures created by ATI's Compressonator using Box-Filter mip generation and DirectX Texture Compression."
http://udn.epicgames.com/Three/TextureSupportAndSettings.html
Go to this link for a great chart on memory size for DXT1 & DXT5
Quote: "What is mipmapping?
Smaller versions of the image will be created in order to make the thing look correctly at a very small size. The image is divided by 2 over and over to make new images.
So, imagine a 256x128 image. This would have smaller versions created of dimensions 128x64, 64x32, 32x16, 16x8, 8x4, 4x2, 2x1, and 1x1.
If this image was 256x192, it would work fine until you got down to a size of 4x3. The next smaller image would be 2x1.5 which is obviously not a valid size. Some graphics hardware can deal with this, but many types cannot.
Some hardware also requires a square image but this isn't very common anymore."
http://gamedev.stackexchange.com/questions/7927/why-would-you-use-textures-that-are-not-a-power-of-2
Above, Raven mentioned try not to access MipMapping.
Quote: "Summary:
DXT Compression is useful for:
Scenes with many large texture files that need to remain in memory
Internet delivery with small filesize
DXT Compression is NOT useful for:
Images that must look very clean or remain lossless
-------------------------------------------------------------------
DXT1 has an 8:1 compression ratio and is useful for:
Diffuse maps
Specular maps
"Clip Alpha" foliage (provided it works in the BGE)
DXT1 is NOT useful for:
Normalmaps
Smooth Alpha maps
-------------------------------------------------------------------
DXT5 has an 4:1 compression ratio and is useful for:
Normal maps
Alpha
Any other map (though it is a larger file than DXT1)
DXT5 is NOT useful for:
Images requiring high visual fidelity "
http://blenderartists.org/forum/showthread.php?154090-DDS-Texture-compression-resources
http://en.wikipedia.org/wiki/S3_Texture_Compression
Article on DXT compression.
http://www.fsdeveloper.com/wiki/index.php?title=DXT_compression_explained
Another great read on compresion in DDS.
Alot of this may be pointless info for u, however I found it interesting enough to add just in case others wanted links etc.
Great posts from the 2 above me
Defy