Changes in / [2b40f48:785333b] in opengl-game
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
graphics-pipeline_vulkan.hpp
r2b40f48 r785333b 88 88 VkDeviceMemory indexBufferMemory; 89 89 90 // TODO: THe objects vector isn't used at all in this class, except in the method that returns91 // 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 later93 90 vector<SceneObject<VertexType>> objects; 94 91 -
shaders/ship.vert
r2b40f48 r785333b 18 18 layout(location = 1) in vec3 vertex_color; 19 19 layout(location = 2) in vec3 vertex_normal; 20 layout(location = 3) in uint obj_index;20 //layout(location = 3) in uint ubo_index; 21 21 22 22 layout(location = 0) out vec3 position_eye; … … 33 33 // Check Anton's book to see how to fix this 34 34 void main() { 35 position_eye = vec3(ubo.view * sbo.objects[obj_index].model * vec4(vertex_position, 1.0)); 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)); 36 37 37 38 // Using 0.0 instead of 1.0 means translations won't effect the normal 38 normal_eye = normalize(vec3(ubo.view * sbo.objects[obj_index].model * vec4(vertex_normal, 0.0))); 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))); 39 41 color = vertex_color; 40 42 light_position_eye = vec3(ubo.view * vec4(light_position_world, 1.0)); -
vulkan-game.cpp
r2b40f48 r785333b 255 255 shipPipeline.addAttribute(VK_FORMAT_R32G32B32_SFLOAT, offset_of(&ShipVertex::color)); 256 256 shipPipeline.addAttribute(VK_FORMAT_R32G32B32_SFLOAT, offset_of(&ShipVertex::normal)); 257 shipPipeline.addAttribute(VK_FORMAT_R32_UINT, offset_of(&ShipVertex::objIndex));258 257 259 258 createBufferSet(sizeof(UBO_VP_mats), VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, … … 270 269 // the same data. Add an option to make some pipelines not use indexing 271 270 /* 272 shipPipeline.addObject( 273 addObjectIndex<ShipVertex>(shipPipeline.getObjects().size(), 274 addVertexNormals<ShipVertex>({ 271 shipPipeline.addObject(addVertexNormals<ShipVertex>({ 275 272 //back 276 273 {{ -0.5f, 0.3f, 0.0f}, {0.0f, 0.0f, 0.3f}}, … … 468 465 {{ 1.5f, 0.0f, 0.0f}, {0.0f, 0.0f, 0.3f}}, 469 466 {{ 1.3f, 0.0f, -0.3f}, {0.0f, 0.0f, 0.3f}}, 470 }) ), {467 }), { 471 468 0, 1, 2, 3, 4, 5, 472 469 6, 7, 8, 9, 10, 11, -
vulkan-game.hpp
r2b40f48 r785333b 33 33 vec3 color; 34 34 vec3 normal; 35 unsigned int objIndex;36 35 }; 37 36 … … 179 178 vector<VertexType> addVertexNormals(vector<VertexType> vertices); 180 179 181 template<class VertexType>182 vector<VertexType> addObjectIndex(unsigned int objIndex, vector<VertexType> vertices);183 184 180 void createBufferSet(VkDeviceSize bufferSize, VkBufferUsageFlags flags, 185 181 vector<VkBuffer>& buffers, vector<VkDeviceMemory>& buffersMemory, vector<VkDescriptorBufferInfo>& bufferInfoList); … … 215 211 } 216 212 217 template<class VertexType>218 vector<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 226 213 #endif // _VULKAN_GAME_H
Note:
See TracChangeset
for help on using the changeset viewer.