Greetings, I used to post on Steemit quite fanatically. In fact, there was a time I think I was ranked within the top 20 for posters in terms of quantity. With that stated it has been a couple of years since I posted anything. I thought I'd come back with a post about something interesting I've been working on awhile related to game development. If any of you have developed games you know that textures and materials can be the bane of your game for several reasons. Every material you need tends to result in additional draw/setpass calls. These can impact FPS. As non-developers this typically translates to the install sizes of games getting larger and larger. Do you want really lush environments and a lot of great textured people and creatures? If the answer is yes then understand that this translates to a lot of textures. In my experience the only thing that tends to use up more space than textures in development is using video. Audio can use up space as well but if you convert it to OGG Vorbis format or something like that it is generally not as big a deal as textures. One trick many developers use is finding out the smallest texture they can get away with that still looks acceptable. Then they will often put multiple textures on a single texture which is known as a texture atlas and be able to use a single material rather than many materials. This can and does help. It is a very common go to technique. Awhile ago when I believe I was still using Steemit regularly I came up with this idea I was calling a Color Swatch. I thought what if I were to average the colors of all the pixels on each triangle of a model and then map that triangle instead to a square color on an atlas of color boxes? If it actually worked well and looked good enough then in theory I'd only need a single texture, and a single material to make any number of models. I was also curious if that would make art that had it's textures made by different artists look well together with less of the uncanny valley problem. The end result was YES it does work. It has use cases where it works great and provides a distinct look of its own. It also has some cases where it does not work so well. In this initial post I am going to simply show you some of my findings. The thing to keep in mind is in these screenshots every single model shares a single material (one setpass call) and a single texture. There are more cool details I'll go into if people seem to be interested after trying out this initial post. HERE IS A SCREENSHOT FROM ONE OF MY EARLIEST EXPERIMENTS: These are models made by different artists with very different texturing. They have all been converted to my earliest attempts at Color Grid (Color Swatch).  The head there is a DAZ Studio Head (I believe Michael 7 or Michael 8) that I also decimated it a little bit. More recently I've been working on a complete character system for a couple of games I am working on and that my son will likely use for some of his projects. I have been converting DAZ Studio Genesis 8 Male and Female characters to the Color Grid format and have 4 LOD levels. I'll show you some of the LOD 0 levels here.  Now one of the things you will notice here is the faceted hard edge look. At the moment that is one of the requirements I've found for converting to this style. When the edges are smooth with triangles often sharing vertices the color mapping technique does not work as clean because where one triangle may be one color it's neighbor may not flow smoothly on the actual texture. Therefore I convert every triangle to have unique vertices. This results in this faceted look. I kind of like it. It is unique. Now if you are a modeler or developer you may look at this and say "***Why don't you just use vertice colors?***" Well. Using this technique I actually can add some PBR techniques in and the end result responds to dynamic lighting better than vertice color based models do. If not for that then I probably would just use vertice colors. In this current figure that is a default skin. The hair is a default white color. I am using another technique I may explain later. For now I'll share some insane statistics (*at least to me*) which you developers will likely understand. That female there... - Base LOD 0 Model = 13.37MB - Number of Different UV Mapped Skins = 304 - Space used up by Skins = 27.39 MB - Total Space = 40.86 MB Yes, that is 40.86 Megabytes for that model plus over 300 skin variations. One variation (the default) is showing in that screenshot. Normally that would take over 300 textures, and might be reduced some by atlasing. Please let me know if this interests you. There are some tricks I use to get things that reduced that I didn't describe. Oh, I also have 552 blendshapes (morphs) for that body. The technique I use for those takes up 36.2MB. I can make her fat, skinny, old, young, into an alien, into a werewolf, etc.
author | dwinblood |
---|---|
permlink | game-development-the-inception-of-the-color-grid-technical-game-development-post |
category | hive-140217 |
json_metadata | "{"app":"peakd/2021.03.9","format":"markdown","description":"Reducing texture requirements for models in a game while creating a unique look and feel.","tags":["gaming","gamedev","development","art","3dmodels","technical"],"image":["https://files.peakd.com/file/peakd-hive/dwinblood/23u5bTpr5EYAghtHh9mhXf6TJg8VLTmC7Z4oo4awAL84UuVe3N5dS829iL847UsRQWxpC.png","https://files.peakd.com/file/peakd-hive/dwinblood/23tGwVSwN1rk1FpBVcQktnoLNvkVpDn7atbGyBHsZFX7BEWtqxoBZuQm8RgPfvzmy2rGt.png"]}" |
created | 2021-04-01 23:58:57 |
last_update | 2021-04-01 23:58:57 |
depth | 0 |
children | 4 |
last_payout | 2021-04-08 23:58:57 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 37.364 HBD |
curator_payout_value | 36.667 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 5,297 |
author_reputation | 383,232,067,634,988 |
root_title | "GAME DEVELOPMENT: The Inception of the Color Grid - Technical Game Development Post" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 102,757,268 |
net_rshares | 72,663,154,261,770 |
author_curate_reward | "" |
voter | weight | wgt% | rshares | pct | time |
---|---|---|---|---|---|
acidyo | 0 | 11,401,868,680,917 | 100% | ||
mangou007 | 0 | 251,130,598 | 9.04% | ||
roelandp | 0 | 343,273,693,523 | 10% | ||
matt-a | 0 | 528,481,602 | 3.5% | ||
ausbitbank | 0 | 79,627,804,382 | 5% | ||
bert0 | 0 | 816,250,314 | 9.04% | ||
stevescoins | 0 | 13,228,997,049 | 100% | ||
titusfrost | 0 | 110,708,581,523 | 100% | ||
rishi556 | 0 | 11,446,164,088 | 100% | ||
keuudeip | 0 | 6,460,946,737 | 10% | ||
builderofcastles | 0 | 23,945,368,687 | 25% | ||
rahul.stan | 0 | 19,839,706,393 | 50% | ||
ganjafarmer | 0 | 3,128,536,305 | 5% | ||
elevator09 | 0 | 17,252,412,935 | 100% | ||
thatsweeneyguy | 0 | 1,566,352,939 | 5% | ||
thatgermandude | 0 | 44,599,209,466 | 100% | ||
frankydoodle | 0 | 5,881,681,238 | 50% | ||
steeminator3000 | 0 | 784,649,488 | 100% | ||
enjar | 0 | 745,166,893,245 | 100% | ||
guchtere | 0 | 913,091,044 | 5% | ||
haejin | 0 | 10,820,536,149,173 | 100% | ||
macchiata | 0 | 2,699,965,207 | 5% | ||
redrica | 0 | 5,916,474,617 | 5.5% | ||
flamingirl | 0 | 2,421,143,226 | 9.04% | ||
postpromoter | 0 | 422,610,466,053 | 10% | ||
elderson | 0 | 1,318,452,607 | 2.5% | ||
sneakyninja | 0 | 4,658,444,497 | 7.35% | ||
fourfourfun | 0 | 7,509,505,513 | 25% | ||
gabrielatravels | 0 | 79,806,238,930 | 38% | ||
r351574nc3 | 0 | 9,613,104,884 | 10% | ||
smjn | 0 | 810,817,979,369 | 100% | ||
mproxima | 0 | 28,518,267,583 | 100% | ||
forester-joe | 0 | 1,891,416,916 | 3.5% | ||
miroslavrc | 0 | 5,162,142,920 | 5% | ||
kryptik.tigrrr3d | 0 | 23,584,750,794 | 100% | ||
salty-mcgriddles | 0 | 3,426,213,927 | 10% | ||
sbi2 | 0 | 477,873,694,336 | 51.37% | ||
obsesija | 0 | 2,098,465,359 | 5% | ||
tresor | 0 | 10,667,760,189 | 9.04% | ||
oscurity | 0 | 1,149,425,445 | 5% | ||
wirago | 0 | 74,040,522,362 | 100% | ||
crystalhuman | 0 | 694,317,384 | 10% | ||
bdmillergallery | 0 | 70,372,230,077 | 6% | ||
commonlaw | 0 | 4,291,588,607 | 35% | ||
exifr | 0 | 907,724,498 | 100% | ||
thedailysneak | 0 | 6,002,118,432 | 7.35% | ||
ocdb | 0 | 34,511,346,153,952 | 10% | ||
izzynoel | 0 | 844,678,603 | 50% | ||
exifr0 | 0 | 1,083,816,126 | 100% | ||
babysavage | 0 | 2,668,875,752 | 14.7% | ||
ravensavage | 0 | 2,370,126,921 | 14.7% | ||
muscara | 0 | 27,929,592,757 | 10% | ||
mister-meeseeks | 0 | 42,904,951,345 | 50% | ||
memeteca | 0 | 1,192,131,576 | 9.04% | ||
gudnius.comics | 0 | 0 | 100% | ||
variedades | 0 | 1,429,432,582 | 4% | ||
ctime | 0 | 262,904,519,524 | 2.5% | ||
qbas116 | 0 | 31,742,680,974 | 100% | ||
sbi-tokens | 0 | 7,532,655,370 | 14.7% | ||
bilpcoinbpc | 0 | 5,147,434,174 | 50% | ||
techhype | 0 | 7,801,641,708 | 100% | ||
zeusflatsak | 0 | 1,270,558,949 | 5% | ||
fengchao | 0 | 7,966,127,958 | 2% | ||
hivebuzz | 0 | 6,502,839,272 | 2% | ||
bnk | 0 | 11,753,898,444 | 9.04% | ||
maitt87 | 0 | 1,447,119,996 | 5% | ||
gradeon | 0 | 1,487,949,792 | 10% | ||
hivelist | 0 | 25,159,691,777 | 10% | ||
ninnu | 0 | 229,156,396,886 | 50% | ||
fakegod | 0 | 550,922,355 | 100% | ||
ghaazi | 0 | 5,111,090,700 | 100% | ||
jsalvage | 0 | 645,996,539 | 5% | ||
perceval | 0 | 23,949,354,785 | 100% | ||
koxmicart | 0 | 6,516,722,947 | 100% | ||
altleft | 0 | 11,585,977,277,702 | 100% | ||
enrico2gameplays | 0 | 958,844,469 | 100% | ||
kattycrochet | 0 | 1,509,998,036 | 5% | ||
yaluna | 0 | 37,541,104,537 | 92% | ||
zelensky | 0 | 48,792,344,570 | 100% | ||
pusen | 0 | 9,161,375,272 | 10% | ||
chibititan | 0 | 2,699,736,415 | 100% | ||
thebeardflex | 0 | 12,255,911,605 | 7.5% | ||
datbeardguy | 0 | 456,881,072 | 3.75% | ||
asuk4 | 0 | 20,307,288,276 | 100% | ||
ayentowen | 0 | 0 | 100% | ||
sunsetjesus | 0 | 5,198,942,674 | 100% | ||
xshisui9 | 0 | 0 | 100% | ||
effendi07 | 0 | 0 | 100% |
Congratulations @dwinblood! You received a personal badge! <table><tr><td>https://images.hive.blog/70x70/http://hivebuzz.me/badges/pud.s3.png?202104020001</td><td>You powered-up at least 100 HP on Hive Power Up Day! This entitles you to a level 3 badge<br>Participate in the next Power Up Day and try to power-up more HIVE to get a bigger Power-Bee.<br>May the Hive Power be with you!</td></tr></table> <sub>_You can view your badges on [your board](https://hivebuzz.me/@dwinblood) and compare yourself to others in the [Ranking](https://hivebuzz.me/ranking)_</sub> **Check out the last post from @hivebuzz:** <table><tr><td><a href="/hivebuzz/@hivebuzz/pud-202104"><img src="https://images.hive.blog/64x128/https://i.imgur.com/805FIIt.jpg"></a></td><td><a href="/hivebuzz/@hivebuzz/pud-202104">Hive Power Up Day - April 1st 2021 - Hive Power Delegation</a></td></tr></table>
author | hivebuzz |
---|---|
permlink | hivebuzz-notify-dwinblood-20210402t010038000z |
category | hive-140217 |
json_metadata | {"image":["http://hivebuzz.me/notify.t6.png"]} |
created | 2021-04-02 01:00:39 |
last_update | 2021-04-02 01:00:39 |
depth | 1 |
children | 0 |
last_payout | 2021-04-09 01:00:39 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 879 |
author_reputation | 369,459,108,740,973 |
root_title | "GAME DEVELOPMENT: The Inception of the Color Grid - Technical Game Development Post" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 102,758,231 |
net_rshares | 0 |
If I develope a game, especially the grafic design I try to use and also design textures with more higher or the highest quality of textures I can create or can use. But my games have only 2D Grafics, and I know, the design of 3D models is way more complex. Good job! It looks realy nice^^
author | yaluna |
---|---|
permlink | re-dwinblood-qqxtrg |
category | hive-140217 |
json_metadata | {"tags":["hive-140217"],"app":"peakd/2021.03.9"} |
created | 2021-04-02 13:07:30 |
last_update | 2021-04-02 13:07:30 |
depth | 1 |
children | 2 |
last_payout | 2021-04-09 13:07:30 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.010 HBD |
curator_payout_value | 0.010 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 289 |
author_reputation | 36,672,450,279,854 |
root_title | "GAME DEVELOPMENT: The Inception of the Color Grid - Technical Game Development Post" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 102,767,916 |
net_rshares | 39,699,641,323 |
author_curate_reward | "" |
voter | weight | wgt% | rshares | pct | time |
---|---|---|---|---|---|
yaluna | 0 | 39,699,641,323 | 100% |
In general when you are making textures it is better to design the source textures you work from to be high resolution like you are doing. However, when you are ready to publish the game you can create variants by reducing the size of the texture as small as you can get it and still have it look exactly the way you want. This will result in less memory, and disk space use and potentially make it more performant on more platforms. You likely already knew this. The thing about textures. While there are some scale up algorithms that can generate some detail in textures the reality is it is near impossible to go back and make a more detailed texture. It is very easy to make a less detailed texture from a more detailed one. For this reason you should always start with the more detailed one.
author | dwinblood |
---|---|
permlink | re-yaluna-qqy2xm |
category | hive-140217 |
json_metadata | {"tags":["hive-140217"],"app":"peakd/2021.03.9"} |
created | 2021-04-02 16:25:03 |
last_update | 2021-04-02 16:25:03 |
depth | 2 |
children | 1 |
last_payout | 2021-04-09 16:25:03 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 806 |
author_reputation | 383,232,067,634,988 |
root_title | "GAME DEVELOPMENT: The Inception of the Color Grid - Technical Game Development Post" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 102,771,574 |
net_rshares | 9,091,903,627 |
author_curate_reward | "" |
voter | weight | wgt% | rshares | pct | time |
---|---|---|---|---|---|
yaluna | 0 | 9,091,903,627 | 22% |
Thats all right. I think the same way.
author | yaluna |
---|---|
permlink | re-dwinblood-qqy48d |
category | hive-140217 |
json_metadata | {"tags":["hive-140217"],"app":"peakd/2021.03.9"} |
created | 2021-04-02 16:53:00 |
last_update | 2021-04-02 16:53:00 |
depth | 3 |
children | 0 |
last_payout | 2021-04-09 16:53:00 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.010 HBD |
curator_payout_value | 0.010 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 38 |
author_reputation | 36,672,450,279,854 |
root_title | "GAME DEVELOPMENT: The Inception of the Color Grid - Technical Game Development Post" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 102,772,111 |
net_rshares | 40,510,203,298 |
author_curate_reward | "" |
voter | weight | wgt% | rshares | pct | time |
---|---|---|---|---|---|
yaluna | 0 | 40,510,203,298 | 100% |