Rick Posted March 15, 2014 Share Posted March 15, 2014 I see the shadow is sort of different but what is broken about piecing together in the example you have? The loading times will just be too long if it's 1 giant model I think. Quote Link to comment Share on other sites More sharing options...
YouGroove Posted March 15, 2014 Share Posted March 15, 2014 I see the shadow is sort of different but what is broken about piecing together in the example you have? What example, can you point me the picture ? ( as i posted a good bunch here) The loading times will just be too long if it's 1 giant model I think. It will depend performance VS loading time, what is your choice. That's strange caus 1.7 Mo building as one model is super slow to load compared to all 4Mo textures (1024*1024) we use. Some future LE3 optimisation will be needed later in that area. Object information (vertex,normals, faces) is lot lot more lightweight than textures. Quote Stop toying and make games Link to comment Share on other sites More sharing options...
SlipperyBrick Posted March 15, 2014 Author Share Posted March 15, 2014 For textures for our project, I will be using a combination of Substance Painter and Bitmap2Material or Mindtex (B2M and Mindtex are Normal Map/Spec/Diffuse/Emissive etc map generators. I think our texture size will be 1024x1024 1 Quote Link to comment Share on other sites More sharing options...
Patrick Posted March 15, 2014 Share Posted March 15, 2014 For textures for our project, I will be using a combination of Substance Painter and Bitmap2Material or Mindtex (B2M and Mindtex are Normal Map/Spec/Diffuse/Emissive etc map generators. I think our texture size will be 1024x1024 I have bene playing around with using modular textures with my modular level design pieces too, I have managed to get an entire in door level set created with the use of one texture, by an entire level set, to give a sense of scale I mean like the entire level of a spaceship from a scifi game or something like that, the texture size is 2048x2048 though, but its something to think about.... I saw that Substance Painter is out now, I have played with Substance designer and I love it, I will try to grab painter soon as its 50% off. I ma looking forward to this little project coming together XD How is mindtex? I thought it was something that did the same thing as b2m...? 1 Quote Link to comment Share on other sites More sharing options...
SlipperyBrick Posted March 15, 2014 Author Share Posted March 15, 2014 I have bene playing around with using modular textures with my modular level design pieces too, I have managed to get an entire in door level set created with the use of one texture, by an entire level set, to give a sense of scale I mean like the entire level of a spaceship from a scifi game or something like that, the texture size is 2048x2048 though, but its something to think about.... I saw that Substance Painter is out now, I have played with Substance designer and I love it, I will try to grab painter soon as its 50% off. I ma looking forward to this little project coming together XD How is mindtex? I thought it was something that did the same thing as b2m...? Mindtex is insanely good, even better than B2M in my opinion. And its over half the price, only £10 on Steam The quality of the maps are very very good to. Quote Link to comment Share on other sites More sharing options...
Patrick Posted March 15, 2014 Share Posted March 15, 2014 Mindtex is insanely good, even better than B2M in my opinion. And its over half the price, only £10 on Steam The quality of the maps are very very good to. I will probably pick it up in the steam summer sale then, I did look into it a little when I saw it release on steam I just haven't had the spare change to throw at it yet 1 Quote Link to comment Share on other sites More sharing options...
SlipperyBrick Posted March 25, 2014 Author Share Posted March 25, 2014 Just updating this thread with a bit of information in regards to texture loading when working with modular pieces for an environment. Here is a small bit of information for anyone who finds it interesting. Myself and my dev team found that when working with modular components for our level design that would obviously increase the amount of textures that will be loaded when playing our game. Here is some information on a very popular and pretty much industry standard when producing a game with modular components. http://en.wikipedia.org/wiki/Texture_atlas Anyone else thinking of approaching this method of making assets for your game I would highly recommend it. Not only can it speed up your workflow, but it can also give you an increase in performance when it comes to running and playing your game. I am hoping when I have made enough assets (simple wall/floor tiles) I can do a tutorial on how this would work in my workflow using 3D - Coat/Blender (my modelling software) and Mindtex (texture map generator) and Substance Painter/Designer (texture programme) along with Leadwerks. Quote Link to comment Share on other sites More sharing options...
DudeAwesome Posted March 25, 2014 Share Posted March 25, 2014 http://en.wikipedia.org/wiki/Texture_atlas texture atlas fancy word dont have known that label I just know this as "spritesheet" from 2d games i found this video years ago when i played with cocos2d engine. it explains how you can save a lot of memory (important on mobile devices) by using spritesheets instead of using single images (also compression) take a look Quote It doesn´t work... why? mhmmm It works... why? Link to comment Share on other sites More sharing options...
YouGroove Posted March 25, 2014 Share Posted March 25, 2014 I am hoping when I have made enough assets (simple wall/floor tiles) I can do a tutorial on how this would work in my workflow using 3D - Coat/Blender (my modelling software) and Mindtex (texture map generator) and Substance Painter/Designer (texture programme) along with Leadwerks. Would be very interesting to teach people some good tips and way of making level. -------------------------------- UDK have that usefull feature : You can group all your tiling (or non tiling) textures in one big texture. Advantage : - One file access only , one texture object only - One draw pass call for all textures in that Atlas Performance Quote Stop toying and make games Link to comment Share on other sites More sharing options...
SlipperyBrick Posted March 26, 2014 Author Share Posted March 26, 2014 Yes I agree guys. If everyone could implement this into their production pipeline when developing games then it makes good practice because your games will be having great performance, plus I believe this is the way the guys do it in the industry. DudeAwesome, the concept behind it is very similar to a spritesheet, what your doing essentially is putting 4 different objects in one UV layout. Leadwerks doesn't have to load 4 different textures for 4 different objects then, it only has to load one UV layout and one model which will have 4 different models (modelception! ) makes for quicker loading time and less information for the engine to process I will be doing a dev diary soon to explain in more depth how this all works and how you can implement it into your workflow. Will most prob do a Youtube video on the development process of our game to and how this helps myself and my team. Would be very interesting to teach people some good tips and way of making level. -------------------------------- UDK have that usefull feature : You can group all your tiling (or non tiling) textures in one big texture. Advantage : - One file access only , one texture object only - One draw pass call for all textures in that Atlas Performance Perfectly explained YouGroove Quote Link to comment Share on other sites More sharing options...
Rick Posted March 26, 2014 Share Posted March 26, 2014 I (with shadmars help) made a shader in 3.0 that allowed this. However, it was at run-time not design time so it required code to set what sub-texture you wanted to use from the mega texture. 1 Quote Link to comment Share on other sites More sharing options...
YouGroove Posted March 26, 2014 Share Posted March 26, 2014 Cool. Yes i imagine some atlas tool similar to old Doom Wads system, to add/drop textures in some atlas, the tool taking care for yourself about sub textures. From here there is two ways : - coder way : get textures from atlas : getTexturesList() , getTextureById() and create materials by code, assign textures id from atlas to material by code (don't know if all possible) -3D artist way : Create a new material, in texture slot you could drop a texture select from some Atlas visualizer tool. This is not impossible to make like UDK , but it behind the scenes it will impact material editor and material definition also, caus material could work with simple textures or Atlas file name and texture Id from Atlas. But a simple code solution could be great fro people seeking memory and performance optimisation (specially for mobile if one day it comes back ?). Quote Stop toying and make games Link to comment Share on other sites More sharing options...
Rick Posted March 26, 2014 Share Posted March 26, 2014 I made it in 3.0 specifically for mobile to take advantage of model instancing and it's performance. Since each instance shares the same material a way to make each instance look unique is to use this texture atlas technique as well. The downside is that you have to bastardize SetColor() to tell the shader what sub-texture to use in the atlas. This is because you need a model unique variable so each model can pick it's sub-texture and the values in SetColor() seem to be the only model specific values that make it to the shader. Also, the UV has to be the same for all sub-textures. I'm not sure if other engines have that restrictions or not? Quote Link to comment Share on other sites More sharing options...
YouGroove Posted March 26, 2014 Share Posted March 26, 2014 Also, the UV has to be the same for all sub-textures The 3D models stores the UV information , not the texture. You could pack terrain textures, character textures any textures, as this is just packing together textures. You could then code : CharacterTexture = MyAtlas.getTexture("character1") TerrainTexture = MyAtlas.getTexture("floor1") What you do with texture don't matter for the Atlas, it's task is just "packing" texture together as one big. The downside is that you have to bastardize SetColor() to tell the shader what sub-texture to use in the atlas. Because it was coded like that, it could have been coded in many ways, for example : Atlas with a definition file content like that : .... numbertextures=5 textureid="character" textureposX=0 textureposY=0 textureSizeX=256 textureSizeY=256 textureid="terrain" textureposX=256 textureposY=256 textureSizeX=512 textureSizeY=512 .... You would just need some Atlas system beeing able to "pack" the textures in the better way possible if we assume it could stock any textures resolutions (or make it simple Atlas512 system, Atlas1024 to work with arrays of textures having same size to simplify coordinates and avoid wasting some space) Quote Stop toying and make games Link to comment Share on other sites More sharing options...
SlipperyBrick Posted March 26, 2014 Author Share Posted March 26, 2014 Here is something interesting guys. It may come in use and it may not. Can't check the tools out though, stuck at work http://www.nvidia.com/object/texture_atlas_tools.html Quote Link to comment Share on other sites More sharing options...
Rick Posted March 26, 2014 Share Posted March 26, 2014 I think the way I did it was to have 1 value of the Vec4 passed to SetColor() defined how many textures per row. Then 2 values defined the row/col of the sub-texture to use for said model, leaving 1 variable unused. outcolor *= texture2D(texture0,vec2(ex_texcoords0.x*tileselect.z+tileselect.z*tileselect.x,ex_texcoords0.y*tileselect.z+tileselect.z*tileselect.y)); I manually created the atlas in paint.net This is how you would select which atlas gets used function App:SetTextureOffset(entity, row, col) entity:SetColor(col, row, 1.0 / 4.0, 1) end So 1 / 4 tells us there are 4 textures wide in the atlas. So you would have a script variable that would define the col/row/sub-texture per row and then you'd apply that in Start(). However, at design time when you apply the material it won't look right. It'll show the entire atlas on the model which kind of sucks. [edit] oh I think I started playing around with the last variable being a scale factor. Quote Link to comment Share on other sites More sharing options...
YouGroove Posted March 26, 2014 Share Posted March 26, 2014 That's very coder way , no high level 3D artist tool Quote Stop toying and make games Link to comment Share on other sites More sharing options...
Rick Posted March 26, 2014 Share Posted March 26, 2014 I'll translate this 3.0 shader to 3.1 (if even needed) and do a small demo for people to use. I'll give the nvidia tool a try. It says DDS but I'm sure I can convert the result to png or something. Quote Link to comment Share on other sites More sharing options...
Rick Posted March 26, 2014 Share Posted March 26, 2014 I don't like that atlas tool I'll make one in .NET that just combines files. 2 Quote Link to comment Share on other sites More sharing options...
SlipperyBrick Posted March 28, 2014 Author Share Posted March 28, 2014 Just a heads up but 4.1 for 3D - Coat Steam edition was released today Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.