Commit Graph

8 Commits

Author SHA1 Message Date
ee35c5540e Corrected bug that allowed incomplete cube map textures to attempt to load, resulting in gl errors
Implemented procedural loading of textures with new streamer algorithm
Fixed thread safety issues in streamer (double-buffered old level tracking variables)
Texture streamer now only processes once per frame

--HG--
branch : nfb
2014-04-14 00:47:29 -07:00
c51552838b New streaming algorithm in progress
--HG--
branch : nfb
2014-04-13 01:53:16 -07:00
0405eb681b New streaming algorithm in progress
Corrected reflections
Corrected KRMATERIAL_ALPHA_MODE_BLENDTWOSIDE alpha mode
Corrected alpha transparent back face culling

--HG--
branch : nfb
2014-04-12 23:42:26 -07:00
e8f9652e42 Implemented new texture streaming algorithm:
Textures are assigned a “weight” by tuneable criteria:
- Area of screen coverage taken by objects containing material (more accurate and generic than distance)
- Type of texture (separate weight for normal, diffuse, spec maps)
- Last used time (to keep textures loaded for recently seen objects that are outside of the view frustum)
  Those factors combine together to give a “weight”, which represents a proportion relative to all other textures weights
  Mipmap levels are stripped off of each texture until they occupy the amount of memory they should proportionally have
  This is in contrast to the global ceiling of texture resolution that slowly drops until the textures fit

--HG--
branch : nfb
extra : rebase_source : 0710cebf76f196f5fea20b6df51be539fafbd834
2014-04-11 01:15:40 -07:00
215349d342 Enabled multithreaded driver in iOS 7.1
Disabled lod_group switch deferral until it can be fixed (objects were failing to up-lod or appear)

--HG--
branch : nfb
2014-03-11 23:43:02 -07:00
e463359405 Removed TTY spam
--HG--
branch : nfb
2014-03-11 00:27:27 -07:00
8a1164c44f - Implemented methods for determining amount of scene that has streamed in. (KRScene::getStreamLevel, KRNode::getStreamLevel, KRModel::getStreamLevel, KRMaterial::getStreamLevel, and KRTexture::getStreamLevel
- Implemented connection between LOD groups and texture streaming, which delays the switch to a new LOD group until the required textures have completed streaming in.
- Corrected bug in KRMaterial that resulted in reflection cube texture names being formatted incorrectly in the mtl file
- Scene graph now requires that lod_group nodes only be contained within lod_set nodes.
- Scene graph  group nodes that do not have a LOD minimum or maximum distance are now stored as "node" rather than as "lod_group" nodes.
- IMPORTANT!  Scenes exported with this version will not be backwards compatible with earlier versions due to the requirement of lod_set nodes.

--HG--
branch : nfb
extra : rebase_source : 1ff640b85338a794841ebbb2bf0087306ff59143
2014-03-10 22:32:49 -07:00
ab808fc3e1 Asynchronous streaming and memory management improvements in progress.
--HG--
branch : async_streaming
2013-11-01 23:17:04 -07:00