Changeset 2b40f48 in opengl-game


Ignore:
Timestamp:
Dec 5, 2019, 5:48:59 PM (5 years ago)
Author:
Dmitry Portnoy <dmitry.portnoy@…>
Branches:
feature/imgui-sdl, master, points-test
Children:
7c929fc
Parents:
785333b (diff), cf727ca (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'master' into hotfix/ship-shader-lights

Files:
4 edited

Legend:

Unmodified
Added
Removed
  • graphics-pipeline_vulkan.hpp

    r785333b r2b40f48  
    8888      VkDeviceMemory indexBufferMemory;
    8989
     90      // TODO: THe objects vector isn't used at all in this class, except in the method that returns
     91      // the number of objects. Move this vector and the SceneObject declaration into VulkanGame, esp.
     92      // since I'll be adding other // object-specific fields sich as transforms to SceneObject later
    9093      vector<SceneObject<VertexType>> objects;
    9194
  • shaders/ship.vert

    r785333b r2b40f48  
    1818layout(location = 1) in vec3 vertex_color;
    1919layout(location = 2) in vec3 vertex_normal;
    20 //layout(location = 3) in uint ubo_index;
     20layout(location = 3) in uint obj_index;
    2121
    2222layout(location = 0) out vec3 position_eye;
     
    3333// Check Anton's book to see how to fix this
    3434void main() {
    35    position_eye = vec3(ubo.view * sbo.objects[0].model * vec4(vertex_position, 1.0));
    36    //position_eye = vec3(view * model_mats[ubo_index] * vec4(vertex_position, 1.0));
     35   position_eye = vec3(ubo.view * sbo.objects[obj_index].model * vec4(vertex_position, 1.0));
    3736
    3837   // Using 0.0 instead of 1.0 means translations won't effect the normal
    39    normal_eye = normalize(vec3(ubo.view * sbo.objects[0].model * vec4(vertex_normal, 0.0)));
    40    //normal_eye = normalize(vec3(view * model_mats[ubo_index] * vec4(vertex_normal, 0.0)));
     38   normal_eye = normalize(vec3(ubo.view * sbo.objects[obj_index].model * vec4(vertex_normal, 0.0)));
    4139   color = vertex_color;
    4240   light_position_eye = vec3(ubo.view * vec4(light_position_world, 1.0));
  • vulkan-game.cpp

    r785333b r2b40f48  
    255255   shipPipeline.addAttribute(VK_FORMAT_R32G32B32_SFLOAT, offset_of(&ShipVertex::color));
    256256   shipPipeline.addAttribute(VK_FORMAT_R32G32B32_SFLOAT, offset_of(&ShipVertex::normal));
     257   shipPipeline.addAttribute(VK_FORMAT_R32_UINT, offset_of(&ShipVertex::objIndex));
    257258
    258259   createBufferSet(sizeof(UBO_VP_mats), VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,
     
    269270   // the same data. Add an option to make some pipelines not use indexing
    270271   /*
    271    shipPipeline.addObject(addVertexNormals<ShipVertex>({
     272   shipPipeline.addObject(
     273      addObjectIndex<ShipVertex>(shipPipeline.getObjects().size(),
     274      addVertexNormals<ShipVertex>({
    272275         //back
    273276         {{ -0.5f,   0.3f,   0.0f}, {0.0f, 0.0f, 0.3f}},
     
    465468         {{  1.5f,   0.0f,   0.0f}, {0.0f, 0.0f, 0.3f}},
    466469         {{  1.3f,   0.0f,  -0.3f}, {0.0f, 0.0f, 0.3f}},
    467       }), {
     470      })), {
    468471           0,   1,   2,   3,   4,   5,
    469472           6,   7,   8,   9,  10,  11,
  • vulkan-game.hpp

    r785333b r2b40f48  
    3333   vec3 color;
    3434   vec3 normal;
     35   unsigned int objIndex;
    3536};
    3637
     
    178179      vector<VertexType> addVertexNormals(vector<VertexType> vertices);
    179180
     181      template<class VertexType>
     182      vector<VertexType> addObjectIndex(unsigned int objIndex, vector<VertexType> vertices);
     183
    180184      void createBufferSet(VkDeviceSize bufferSize, VkBufferUsageFlags flags,
    181185         vector<VkBuffer>& buffers, vector<VkDeviceMemory>& buffersMemory, vector<VkDescriptorBufferInfo>& bufferInfoList);
     
    211215}
    212216
     217template<class VertexType>
     218vector<VertexType> VulkanGame::addObjectIndex(unsigned int objIndex, vector<VertexType> vertices) {
     219   for (VertexType& vertex : vertices) {
     220      vertex.objIndex = objIndex;
     221   }
     222
     223   return vertices;
     224}
     225
    213226#endif // _VULKAN_GAME_H
Note: See TracChangeset for help on using the changeset viewer.