02 Jul Momonga Monday: The Making Of Panda’s Challenge
Howdy folks! Recently we have covered the history of Panda, your mentor. He is a funny old chap with a bamboo stick and a herb pouch. He saved Momo from the owl raid and healed him – something any panda herbalist would do.
This week I am taking you on a tour into Panda’s Sanctuary, the place where you get your training in the game. It is a lush, dream-like environment, up high in the clouds.
You probably remember the concept art for this level from a couple of weeks ago:
Now that the level is done, have a look at this image:
It is a screenshot taken from the actual game, but from a custom point of view. Not bad for an iPhone game, right?
This area is the first of three stages for this level. The concept art showed the third stage, so the concept art and 3D art are slightly different.
Here is the same area with wireframes, taken from a different angle. We try to keep the triangle count low, as this is bad for performance. It is a balancing act between making the scene look good, and making the scene run smoothly.
And when we dive a bit deeper, here is the environment without textures:
If you did not see any difference, that is correct. Apart from some minor details and lightmaps, we do not use any textures at all. Most mobile devices don’t handle texture memory well, and with all the loading times and slowdowns we figured we would give vertex colors a shot. So all the colors you see in the scene above are painted right onto the vertex points of the models. The lightmap handles the shadows, and it looks pretty sharp.
Here’s a closeup of Panda, including wireframes. The green lines are the collision models. These are used to detect if something hit Panda or his stick.
What do you think? Did you like the concept art better or the final result? Let us know in the comments!
Cheers,
-Derk
litus
Posted at 08:45h, 07 MarchI love your graphics!!
Catalin
Posted at 17:00h, 13 JuneVery curios about how the meshes are done because as far as I know a vertex is shared among adjacent triangles and cannot hold different colors, plus the colors are interpolated between the three vertexes that compose a triangle, but yours seem to be flat shaded and have the colors per face not per vertex.
Derk De Geus
Posted at 22:07h, 13 JuneWhat you say is correct if you have smoothed shading. This video explains it much better than I ever could: http://www.youtube.com/watch?v=PMgjVJogIbc Note that while a vertex cannot hold multiple colors, you can add another vertex on the same spot to create a “hard” transition to a different color. (As a matter of fact this is what happens with hard edges: A vertex cannot hold more than one normal, so a hard edge requires another vertex on the same location.)
The meshes of the characters in Momonga are regular 3D models with textures. For example, the details (such as the inside of Panda’s paws) are drawn in the texture, so this is not part of the model itself. There is no diffuse lighting calculated for the vertices, so it appears flat-shaded.
Hope this helps! 🙂
-Derk
Catalin
Posted at 22:31h, 13 JuneThanks so much for your reply, I was searching for a way to do flat shading without duplicating vertexes (trying to use something like per face colours and normals) but after some research I found that you simply cannot do that with a programmable pipeline (at least not on mobile GPUs that don’t have geometry shaders) the vertex shader input is always a vertex and the data is always per vertex. I was suspecting that you use hard edges (that’s if you don’t use fixed pipeline) but in my heart I was hopping that you have some tricks you are using that I did’t found about.
Thanks again for your help,
Catalin
Derk De Geus
Posted at 22:34h, 13 JuneYou’re welcome Catalin! Unfortunately when it comes to this stuff, it’s all pretty basic – not much you can do with vertex properties other than what’s there already. Good luck with your project and see you around! 🙂
-Derk
Catalin
Posted at 22:34h, 13 JuneBtw, really love the art direction too…
Alexey
Posted at 23:53h, 21 MayHello, Impressive job…
I’m running some personal tests and I was looking exactly for this kind of visual, I like it very much, good job!!!-
so … as it seems IT would be reasonable to build it in a 3d program like maya in some pieces of level and join them together in Unity ??… so thats the way IT seems this is done, and Im wondering if that way of proceeding removes all inbuilt unity terrain system …
thank you