Thursday, April 18, 2013

Summary of what I have learnt on graphic class


                 
        At first, I want to say” Thank you very much” to John-Paul Ownby for giving us such nice class on this semester. I intend to go to class tonight for got some new information and choose option 1 to build a nice scene at first. But I have to back China to do internship at April 29. So option 3 seems good for me because I should finish all the Assignment as soon as possible and do some preparations for summer travel.

     For computer graphic and coding skill aspect, honestly speaking, I know nothing about computer graphic and DX11 before this class. So starting from a rectangle to a scene with shadow, transparency, light, environment map, translucent effect is truly a long but colorful road. I still remember the day that John explains the graphic pipeline in such an easy way but turn out to be a huge code structure (which has been proved a very expandable and nice frame right now.).

       My understanding of game graphic is a process that lots of vertexes that encased with position information, color information, texture UV, normal, tangent, bi_tagnet and other information we may not know from now on. These vertexes ordered by index buffer (with left-hand rule in DX) then sent to vertex shader to do some math problems like normalize, dot, matrix handle.(generally speaking, is a transition process model position between world position, then world position to view position). After that the vertex shader work out the data which fragment shader use it as input and do lots of magic work (for my understanding blending color in different way.) to show the scene on the screen.  And this also the reason why graphic hardware is such an amazing stuff—do magic work behind screen, under the code.

         Imitate Light is the most impressive creation for me compare to all of our assignment. I already pointed that out in older blog that how this inspired my mind.  This method solves the problem on different way, the way usually opposite to us   (at least me). I should keep in mind to try to solve problem on some amazing different way in daily life.  What is more, I think environment map, render target as Texture and translucent effect are all based on the method inherited from imitate light.

        Code structure is another critical part for me. From this class, I got deep understanding of I/O demanding and why expandable quality is important to a code frame.  We use “Scene” file to determine which Entities and Lights are in the scene. Then use “Entity” file to determine Mesh and Material. “Material” includes Effects and Texture. “Effects” file responsible for which shader we may use. As assignment became more and more complicated, I can feel how important to have this stuff to expand function.

      Besides class, I think JP has lots of excellent personality I should learn from. He demands people (including himself) to finish task as perfect as possible. CADE stuff is a good example. The time he spent to help me to solve this tiny problem is totally enough to just let me use whatever kinds of online driver. But he did this, he give me a detail email comments and link for asking help. No matter how classmates may complain about the assignment, he never canceled it out. “Just use more time to finish what you should finish and learn what should understanding”

       All in all, I am glad that I chose this class and it’s truly meaningful experience.  

Friday, April 12, 2013

Game Graphic 10


 This Assignment ask us to finish soft intersection. So we had to built depth pass first to store opaque bucket information first, then use it on soft intersection Effect. This time we name this information as "view depth texture". Similar to Assignment 9 except that we only output value to red channel. So D3DFMT_R16F texture  was used.......... Nothing beyond clear, preparing data for use, send data to shade for rendering.


Some detail to mention: Lots of trick parts in this assignment, especially to implement comparing current fragments' view depth with the previous view depth.  And remember normalize Z value at first=.=


Here is the result of soft intersection:


Depth Buffer:
   
Depth texture in red Channel:




Tuesday, April 2, 2013

GDC experience

            Blizzcon,E3,GDC... I have dreamed one day that I will have chance to attend these Game Conference since I was on high school. And Golden Gate Bridge is such a mysterious symbol for me until last week. A trip for GDC begin, a journey to San Francisco start.
            Here are some personal experience and judgement about this travel. 
           1 The skills that we learnt in school is still part of  knowledge for game industry. There are huge amounts of  work position offered in game industry and lots of very detailed area may obtain huge success. For instance. I found a company has built its own tools to develop tree model and animation which can be easy load into game engine and gain high efficiency. Also a company developed a small wireless connection device between mobile phone and HID family TV. So people can play mobile phone game on their TV to share happiness on family on a big screen. 
             No matter what kinds of area. Game industry full of opportunity and fortune. Because it changing people's life and bring enjoyment.
             
            2 GDC is awesome and worth to go. 
           (1)  You can meet lots of different people working as different roles for game industry.It is this chance I discover how colorful my future work would be.
          (2)  I should buy conference access tickets next year to gain more advance information about game industry. (I don't know that Expo pass do not include conference this year. I slip in two lecture and they are useful. )
         (3)  Its a good place to get job and internship. 
                 


         
          3 Figure out where you should go is more important than walking to a direction without no doubt. At least its important in game industry, which based on high technology development. What kind of game that player eager for is changing. What kinds of ways they may play is changing. What the purpose drive them to play game may changing too in near future or now.


      4 Small detail
      (1) Game industry in China and Asian is developing in dramatically speed and full of opportunity. (I prefer working on the game based on a culture which I am familiar with)
               
      (2) More and more company are going to publish their own Game Engine. Developing game based on commercial engine or company's own mature engine is future tendency.

     (3) Utah is good place to live and study compare to boisterous San Francisco. I am lucky I had made the right choice.

    (4) We can imagine how life would be hard for the old Chinese generation that came to San Francisco to pursue dream or maybe 
fortune from old photo and building on China town.

    (5) Money on big City like San Francisco is worthless even though you may get high salary on here. So I should insist where I live and work comfortable.

   (6) One famous game can make a once nameless company famous all over the world. And company can take advantage of this to expand its real or unreal fortune.



           


Friday, March 22, 2013

Game Graphic 9

            Finally, got our graphic effects  little advanced :).  
            This assignment asks us to finish both Environment Mapping and Opaque bucket Texture.  For me the principle for these effect are kinds like light effect that we finished on previous assignments. Just like this:
            There is no light on this place, but we imitate how light may effect the result directly on another place. Similarly, imitate how environment may show on the cube or sphere like mirror. Even though, there actually no such environment around us. Not to mention that put the whole Opaque bucket as Texture.

           By understanding this, what we do next is just figure out how to blending color. Just like John said yesterday on class "Graphic is kinds of process computer only care vertexes position and the sequence to building triangles. Finally do lots of blending color work"
          Here are results and screenshot from PIX of Opaque bucket render target used as texture:   


    
                                    


      Another funny part is to do Environment mapping on Sphere.
                               

   Code


 




Tuesday, March 19, 2013

Summary Preface

             For a long time, that I haven't write down something about my game development experience yet. This semester is super busy. Both of our Game Engine Class and Game Graphic Class ask us to do lots of coding work. Besides, I need working on LeoProject to finish a museum game with Cohort 2 students. At same time, Game project class is moving to final  graduation project now.  
           At first, I join to Rover Rescue try to building a RTS game, which treat "survival" as unique sell point. We do design this game very carefully. Everybody expressed some awesome ideas to make a students'  RTS game fun enough.


              However, our game prototype does not pass the "Gate" which   guarded by industry panel  and professors. So the team had to dismiss and team members have to join other teams which passed the "Gate". 
         Even though this fact is heart breaking. But project have to move on just like life itself. I will do a detail summary on other post to keep in mind some design traps. 
         

         I am working on "Vinyl" team right now, a nice design music game as graduation project. I believe this game have grasped the "Dark Bible" of  what a student game should like. Focus on fun and easy to play. Plus unique Music elements, "Vinyl" should have a great chance to be a excellent game and got published.
           

Friday, March 8, 2013

Game Graphic 8

    Here comes Normal map. Such an amazing technology which has changed computer graphic dramatically. Honestly Speaking, I have no idea that what "map" mean here before this class. So I had do lots of reading to figure it out. But I believe the time I spent on the reading are worth and important. It gives me lots of information beyond class.
    Here is results that "RAISED" raised and "SUNKEN" sunken on cube surface.





  My camera work as rotation effect so I have to change  older transparent entity (close to Camera) to use normal materiel for observe the result. So it ruined transparent effect already created(below). This remind me how important the design process. (My program do not have the function to close to the object at first because I don't know it should have in future.) Or it will cause lots of trouble.
                            

 John's class ask us to do lots of stuff beyond game graphic. It's hard and painful experience to grasp them at first. But once you cut them down one by one(plus new stuff coming and merged). I gradually know why we should do task like this way. And what the benefit to do like this.

Code




Friday, March 1, 2013

Game Graphic 7


    Here is the result that we can see that one partially transparent object closest to the camera, and then another partially transparent object through the closest one , and the through both of them.......... 
  
                           

   I did have some difficulty on understanding "current pix location" on DX document at first. So it turns out I thought BLENDOP.. SRCBLEND.. DESTBLEND was three parameters for one function at same time. ..
   Plus so called "buckets" , our code become more structure expandable and integrated.
  Code
     
  And bellow are PIX screenshots
  Opaque and translucent expand