Changeset 2b40f48 in opengl-game
- Timestamp:
- Dec 5, 2019, 5:48:59 PM (5 years ago)
- 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. - Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
graphics-pipeline_vulkan.hpp
r785333b r2b40f48 88 88 VkDeviceMemory indexBufferMemory; 89 89 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 90 93 vector<SceneObject<VertexType>> objects; 91 94 -
shaders/ship.vert
r785333b r2b40f48 18 18 layout(location = 1) in vec3 vertex_color; 19 19 layout(location = 2) in vec3 vertex_normal; 20 //layout(location = 3) in uint ubo_index;20 layout(location = 3) in uint obj_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[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)); 37 36 38 37 // 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))); 41 39 color = vertex_color; 42 40 light_position_eye = vec3(ubo.view * vec4(light_position_world, 1.0)); -
vulkan-game.cpp
r785333b r2b40f48 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)); 257 258 258 259 createBufferSet(sizeof(UBO_VP_mats), VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, … … 269 270 // the same data. Add an option to make some pipelines not use indexing 270 271 /* 271 shipPipeline.addObject(addVertexNormals<ShipVertex>({ 272 shipPipeline.addObject( 273 addObjectIndex<ShipVertex>(shipPipeline.getObjects().size(), 274 addVertexNormals<ShipVertex>({ 272 275 //back 273 276 {{ -0.5f, 0.3f, 0.0f}, {0.0f, 0.0f, 0.3f}}, … … 465 468 {{ 1.5f, 0.0f, 0.0f}, {0.0f, 0.0f, 0.3f}}, 466 469 {{ 1.3f, 0.0f, -0.3f}, {0.0f, 0.0f, 0.3f}}, 467 }) , {470 })), { 468 471 0, 1, 2, 3, 4, 5, 469 472 6, 7, 8, 9, 10, 11, -
vulkan-game.hpp
r785333b r2b40f48 33 33 vec3 color; 34 34 vec3 normal; 35 unsigned int objIndex; 35 36 }; 36 37 … … 178 179 vector<VertexType> addVertexNormals(vector<VertexType> vertices); 179 180 181 template<class VertexType> 182 vector<VertexType> addObjectIndex(unsigned int objIndex, vector<VertexType> vertices); 183 180 184 void createBufferSet(VkDeviceSize bufferSize, VkBufferUsageFlags flags, 181 185 vector<VkBuffer>& buffers, vector<VkDeviceMemory>& buffersMemory, vector<VkDescriptorBufferInfo>& bufferInfoList); … … 211 215 } 212 216 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 213 226 #endif // _VULKAN_GAME_H
Note:
See TracChangeset
for help on using the changeset viewer.