Jump to content

3D Coat users?


SlipperyBrick
 Share

Recommended Posts

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.

Stop toying and make games

Link to comment
Share on other sites

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...?

  • Upvote 1
Link to comment
Share on other sites

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 :D

 

The quality of the maps are very very good to.

Link to comment
Share on other sites

Mindtex is insanely good, even better than B2M in my opinion. And its over half the price, only £10 on Steam biggrin.png

 

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 :D

  • Upvote 1
Link to comment
Share on other sites

  • 2 weeks later...

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.

Link to comment
Share on other sites

 

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

 

It doesn´t work... why? mhmmm It works... why?

Link to comment
Share on other sites

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 smile.png

Stop toying and make games

Link to comment
Share on other sites

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! :P) makes for quicker loading time and less information for the engine to process :D

 

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 smile.png

 

Perfectly explained YouGroove :D

Link to comment
Share on other sites

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 ?).

Stop toying and make games

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

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)

Stop toying and make games

Link to comment
Share on other sites

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 smile.png

 

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.

Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...