Game Engineer
prj1.jpg

Assignment 07

Assignment 7

Link To Assignment 07

Capture 1

Capture 2

Capture 2

Capture 3

Capture 3

  1. The write-up should also explain (in your own words) what the point of the assignment was and how you did it

    A large goal of the assignment was to set up a Maya plugin to export geometry in your custom file type (in my case a human readable lua file). I had to code up some custom logic to convert the exported maya vertices and indexes into my custom file format. For the most part this was an easy assignment that did not take too long to finish.

  2. The write-up should contain detail about how you personally completed the assignment:

    Most of the actual set up for the geometry exporter was fairly simple and the writing of the converter inside the exporter didn’t take long as well. Most of my code was also already working well enough that implementing the Depth Testing and Depth Writing was fairly simple. In truth, I spent more time trying to figure out what was happening when I exported overly sized geometry models.

    First of all, the big question: What happens when your model has too many vertices/indexes. After some discussion with some fellow colleagues, I made a couple of theories of conclusion. Firstly, your allocated buffer size of vertex or index data (vertex data will probably run out first because it’s three floats versus one float) will probably run out. An operating system or memory section can only get so large before limits are reached. Secondly, the defined index size (in my case it was uint16_t) might be too small to fit all the vertices. 16 bits provide a max index size of 65536 vertexes that can actually be indexed.

    I had problems creating an error where my application would actually fail if this index limit was hit. I created a plane that exceeded the 65536 vertex limit and my application drew the shape fine. My theory is that when casting a large number to a smaller number to fit inside 16 bits, the code was implicitly discarding high-order bits (according to my research via the internet). This in theory would mean that the actual triangles being drawn on the shape would be all messed up and not possess good topology. From the images above you can see that this is not shown, and this is due to the fact I believe that I have not implemented vertex coloring (If I had more time I would do this) . I would like to further discuss the inner workings of this if possible.

  3. Specific Requirements:

    Due to the MayaGeometryExporter being a very tool specific plugin that would be used in an exterior application, I believe that project dependencies and references are irrelevant to this project. It is used to make a exporter for a separate tool to create geometry and has no contextually dependency between the engine or game.

    In reference to unused data like normals, tangents, and bitangents. I did not include this data because my engine currently does not support any of these features. But I am excited in exploring the inclusion of these features later on hopefully. I want to really tackle shaders at one point.

  4. Credits:

    I discussed the assignment with Byreave and Pluto.

Fig 1 : Debugging Plugin

Instructions:

  • Use left and right arrow keys to move the camera

  • Use up and down arrow keys to move the camera forward and backward

  • Use ‘W’ ‘A’ ‘S’ ‘D’ to move one of the shapes.

  • Use ‘SHIFT’ to change the shape that moves when held down