diff --git a/assets/models/tescoPiwo.mtl b/assets/models/tescoPiwo.mtl new file mode 100644 index 0000000..1c58cf2 --- /dev/null +++ b/assets/models/tescoPiwo.mtl @@ -0,0 +1,13 @@ +# Blender 4.2.0 MTL File: 'tescoPiwo.blend' +# www.blender.org + +newmtl Material.001 +Ns 360.000000 +Ka 0.500000 0.500000 0.500000 +Ks 0.500000 0.500000 0.500000 +Ke 0.000000 0.000000 0.000000 +Ni 1.500000 +d 1.000000 +illum 3 +map_Kd tescoPiwoTexture.png +map_Bump -bm 1.000000 /home/przmk/Downloads/Downloads/tescoPiwoNormal.png diff --git a/assets/models/tescoPiwo.obj b/assets/models/tescoPiwo.obj new file mode 100644 index 0000000..92a9452 --- /dev/null +++ b/assets/models/tescoPiwo.obj @@ -0,0 +1,1751 @@ +# Blender 4.2.0 +# www.blender.org +mtllib tescoPiwo.mtl +o Piwo +v -0.000000 0.044375 0.230400 +v -0.000000 1.086295 0.230400 +v -0.044949 0.044375 0.225973 +v -0.044949 1.086295 0.225973 +v -0.088170 0.044375 0.212862 +v -0.088170 1.086295 0.212862 +v -0.128003 0.044375 0.191571 +v -0.128003 1.086295 0.191571 +v -0.162917 0.044375 0.162917 +v -0.162917 1.086295 0.162917 +v -0.191571 0.044375 0.128003 +v -0.191571 1.086295 0.128003 +v -0.212862 0.044375 0.088170 +v -0.212862 1.086295 0.088170 +v -0.225973 0.044375 0.044949 +v -0.225973 1.086295 0.044949 +v -0.230400 0.044375 -0.000000 +v -0.230400 1.086295 -0.000000 +v -0.225973 0.044375 -0.044949 +v -0.225973 1.086295 -0.044949 +v -0.212862 0.044375 -0.088170 +v -0.212862 1.086295 -0.088170 +v -0.191571 0.044375 -0.128003 +v -0.191571 1.086295 -0.128003 +v -0.162917 0.044375 -0.162917 +v -0.162917 1.086295 -0.162917 +v -0.128003 0.044375 -0.191571 +v -0.128003 1.086295 -0.191571 +v -0.088170 0.044375 -0.212862 +v -0.088170 1.086295 -0.212862 +v -0.044949 0.044375 -0.225973 +v -0.044949 1.086295 -0.225973 +v 0.000000 0.044375 -0.230400 +v 0.000000 1.086295 -0.230400 +v 0.044949 0.044375 -0.225973 +v 0.044949 1.086295 -0.225973 +v 0.088170 0.044375 -0.212862 +v 0.088170 1.086295 -0.212862 +v 0.128003 0.044375 -0.191571 +v 0.128003 1.086295 -0.191571 +v 0.162917 0.044375 -0.162917 +v 0.162917 1.086295 -0.162917 +v 0.191571 0.044375 -0.128003 +v 0.191571 1.086295 -0.128003 +v 0.212862 0.044375 -0.088170 +v 0.212862 1.086295 -0.088170 +v 0.225973 0.044375 -0.044949 +v 0.225973 1.086295 -0.044949 +v 0.230400 0.044375 -0.000000 +v 0.230400 1.086295 -0.000000 +v 0.225973 0.044375 0.044949 +v 0.225973 1.086295 0.044949 +v 0.212862 0.044375 0.088170 +v 0.212862 1.086295 0.088170 +v 0.191571 0.044375 0.128003 +v 0.191571 1.086295 0.128003 +v 0.162917 0.044375 0.162917 +v 0.162917 1.086295 0.162917 +v 0.128003 0.044375 0.191571 +v 0.128003 1.086295 0.191571 +v 0.088170 0.044375 0.212862 +v 0.088170 1.086295 0.212862 +v 0.044949 0.044375 0.225973 +v 0.044949 1.086295 0.225973 +v -0.038174 1.185086 0.191913 +v -0.000000 1.185086 0.195673 +v -0.074881 1.185086 0.180778 +v -0.108710 1.185086 0.162696 +v -0.138361 1.185086 0.138361 +v -0.162696 1.185086 0.108710 +v -0.180778 1.185086 0.074881 +v -0.191913 1.185086 0.038174 +v -0.195673 1.185086 -0.000000 +v -0.191913 1.185086 -0.038174 +v -0.180778 1.185086 -0.074881 +v -0.162696 1.185086 -0.108710 +v -0.138361 1.185086 -0.138361 +v -0.108710 1.185086 -0.162696 +v -0.074881 1.185086 -0.180778 +v -0.038174 1.185086 -0.191913 +v 0.000000 1.185086 -0.195673 +v 0.038174 1.185086 -0.191913 +v 0.074881 1.185086 -0.180778 +v 0.108710 1.185086 -0.162696 +v 0.138361 1.185086 -0.138361 +v 0.162696 1.185086 -0.108710 +v 0.180778 1.185086 -0.074881 +v 0.191913 1.185086 -0.038174 +v 0.195673 1.185086 -0.000000 +v 0.191913 1.185086 0.038174 +v 0.180778 1.185086 0.074881 +v 0.162696 1.185086 0.108710 +v 0.138361 1.185086 0.138361 +v 0.108710 1.185086 0.162696 +v 0.074881 1.185086 0.180778 +v 0.038174 1.185086 0.191913 +v -0.037345 1.211296 0.187747 +v -0.000000 1.211296 0.191425 +v -0.073255 1.211296 0.176854 +v -0.106350 1.211296 0.159164 +v -0.135358 1.211296 0.135358 +v -0.159164 1.211296 0.106350 +v -0.176854 1.211296 0.073255 +v -0.187747 1.211296 0.037345 +v -0.191425 1.211296 -0.000000 +v -0.187747 1.211296 -0.037345 +v -0.176854 1.211296 -0.073255 +v -0.159164 1.211296 -0.106350 +v -0.135358 1.211296 -0.135358 +v -0.106350 1.211296 -0.159164 +v -0.073255 1.211296 -0.176854 +v -0.037345 1.211296 -0.187747 +v 0.000000 1.211296 -0.191425 +v 0.037345 1.211296 -0.187747 +v 0.073255 1.211296 -0.176854 +v 0.106350 1.211296 -0.159164 +v 0.135358 1.211296 -0.135358 +v 0.159164 1.211296 -0.106350 +v 0.176854 1.211296 -0.073255 +v 0.187747 1.211296 -0.037345 +v 0.191425 1.211296 -0.000000 +v 0.187747 1.211296 0.037345 +v 0.176854 1.211296 0.073255 +v 0.159164 1.211296 0.106350 +v 0.135358 1.211296 0.135358 +v 0.106350 1.211296 0.159164 +v 0.073255 1.211296 0.176854 +v 0.037345 1.211296 0.187747 +v 0.185004 1.204968 0.076631 +v 0.185004 1.191414 0.076631 +v 0.166499 1.191414 0.111251 +v 0.166499 1.204968 0.111251 +v -0.111251 1.204968 -0.166499 +v -0.111251 1.191414 -0.166499 +v -0.076631 1.191414 -0.185004 +v -0.076631 1.204968 -0.185004 +v -0.000000 1.204968 0.200246 +v -0.000000 1.191414 0.200246 +v -0.039066 1.191414 0.196399 +v -0.039066 1.204968 0.196399 +v 0.141596 1.191414 0.141596 +v 0.141596 1.204968 0.141596 +v -0.039066 1.191414 -0.196399 +v -0.039066 1.204968 -0.196399 +v -0.076631 1.191414 0.185004 +v -0.076631 1.204968 0.185004 +v 0.111251 1.191414 0.166499 +v 0.111251 1.204968 0.166499 +v 0.000000 1.191414 -0.200246 +v 0.000000 1.204968 -0.200246 +v -0.111251 1.191414 0.166499 +v -0.111251 1.204968 0.166499 +v 0.076631 1.191414 0.185004 +v 0.076631 1.204968 0.185004 +v 0.039066 1.191414 -0.196399 +v 0.039066 1.204968 -0.196399 +v -0.141596 1.191414 0.141596 +v -0.141596 1.204968 0.141596 +v 0.039066 1.191414 0.196399 +v 0.039066 1.204968 0.196399 +v 0.076631 1.191414 -0.185004 +v 0.076631 1.204968 -0.185004 +v -0.166499 1.191414 0.111251 +v -0.166499 1.204968 0.111251 +v 0.111251 1.191414 -0.166499 +v 0.111251 1.204968 -0.166499 +v -0.185004 1.191414 0.076631 +v -0.185004 1.204968 0.076631 +v 0.141596 1.191414 -0.141596 +v 0.141596 1.204968 -0.141596 +v -0.196399 1.191414 0.039066 +v -0.196399 1.204968 0.039066 +v 0.166499 1.191414 -0.111251 +v 0.166499 1.204968 -0.111251 +v -0.200246 1.191414 -0.000000 +v -0.200246 1.204968 -0.000000 +v 0.185004 1.191414 -0.076631 +v 0.185004 1.204968 -0.076631 +v -0.196399 1.191414 -0.039066 +v -0.196399 1.204968 -0.039066 +v 0.196399 1.191414 -0.039066 +v 0.196399 1.204968 -0.039066 +v -0.185004 1.191414 -0.076631 +v -0.185004 1.204968 -0.076631 +v 0.200246 1.191414 -0.000000 +v 0.200246 1.204968 -0.000000 +v -0.166499 1.191414 -0.111251 +v -0.166499 1.204968 -0.111251 +v 0.196399 1.191414 0.039066 +v 0.196399 1.204968 0.039066 +v -0.141596 1.191414 -0.141596 +v -0.141596 1.204968 -0.141596 +v -0.038174 1.211296 0.191913 +v -0.000000 1.211296 0.195673 +v -0.074881 1.211296 0.180778 +v -0.108710 1.211296 0.162696 +v -0.138361 1.211296 0.138361 +v -0.162696 1.211296 0.108710 +v -0.180778 1.211296 0.074881 +v -0.191913 1.211296 0.038174 +v -0.195673 1.211296 -0.000000 +v -0.191913 1.211296 -0.038174 +v -0.180778 1.211296 -0.074881 +v -0.162696 1.211296 -0.108710 +v -0.138361 1.211296 -0.138361 +v -0.108710 1.211296 -0.162696 +v -0.074881 1.211296 -0.180778 +v -0.038174 1.211296 -0.191913 +v 0.000000 1.211296 -0.195673 +v 0.038174 1.211296 -0.191913 +v 0.074881 1.211296 -0.180778 +v 0.108710 1.211296 -0.162696 +v 0.138361 1.211296 -0.138361 +v 0.162696 1.211296 -0.108710 +v 0.180778 1.211296 -0.074881 +v 0.191913 1.211296 -0.038174 +v 0.195673 1.211296 -0.000000 +v 0.191913 1.211296 0.038174 +v 0.180778 1.211296 0.074881 +v 0.162696 1.211296 0.108710 +v 0.138361 1.211296 0.138361 +v 0.108710 1.211296 0.162696 +v 0.074881 1.211296 0.180778 +v 0.038174 1.211296 0.191913 +v -0.037345 1.182776 0.187747 +v 0.000000 1.182776 0.191425 +v -0.073255 1.182776 0.176854 +v -0.106350 1.182776 0.159164 +v -0.135358 1.182776 0.135358 +v -0.159164 1.182776 0.106350 +v -0.176854 1.182776 0.073255 +v -0.187747 1.182776 0.037345 +v -0.191425 1.182776 -0.000000 +v -0.187747 1.182776 -0.037345 +v -0.176854 1.182776 -0.073255 +v -0.159164 1.182776 -0.106350 +v -0.135358 1.182776 -0.135358 +v -0.106350 1.182776 -0.159164 +v -0.073255 1.182776 -0.176854 +v -0.037345 1.182776 -0.187747 +v 0.000000 1.182776 -0.191425 +v 0.037345 1.182776 -0.187747 +v 0.073255 1.182776 -0.176854 +v 0.106350 1.182776 -0.159164 +v 0.135358 1.182776 -0.135358 +v 0.159164 1.182776 -0.106350 +v 0.176854 1.182776 -0.073255 +v 0.187747 1.182776 -0.037345 +v 0.191425 1.182776 -0.000000 +v 0.187747 1.182776 0.037345 +v 0.176854 1.182776 0.073255 +v 0.159164 1.182776 0.106350 +v 0.135358 1.182776 0.135358 +v 0.106350 1.182776 0.159164 +v 0.073255 1.182776 0.176854 +v 0.037345 1.182776 0.187747 +v -0.000000 0.002513 0.202216 +v -0.039450 0.002513 0.198330 +v -0.077385 0.002513 0.186823 +v -0.112345 0.002513 0.168136 +v -0.142988 0.002513 0.142988 +v -0.168136 0.002513 0.112345 +v -0.186823 0.002513 0.077385 +v -0.198330 0.002513 0.039450 +v -0.202216 0.002513 -0.000000 +v -0.198330 0.002513 -0.039450 +v -0.186823 0.002513 -0.077385 +v -0.168136 0.002513 -0.112345 +v -0.142988 0.002513 -0.142988 +v -0.112345 0.002513 -0.168136 +v -0.077385 0.002513 -0.186823 +v -0.039450 0.002513 -0.198330 +v 0.000000 0.002513 -0.202216 +v 0.039450 0.002513 -0.198330 +v 0.077385 0.002513 -0.186823 +v 0.112345 0.002513 -0.168136 +v 0.142988 0.002513 -0.142988 +v 0.168136 0.002513 -0.112345 +v 0.186823 0.002513 -0.077385 +v 0.198330 0.002513 -0.039450 +v 0.202216 0.002513 -0.000000 +v 0.198330 0.002513 0.039450 +v 0.186823 0.002513 0.077385 +v 0.168136 0.002513 0.112345 +v 0.142988 0.002513 0.142988 +v 0.112345 0.002513 0.168136 +v 0.077385 0.002513 0.186823 +v 0.039450 0.002513 0.198330 +v -0.000000 -0.009869 0.197613 +v -0.038552 -0.009869 0.193816 +v -0.075623 -0.009869 0.182570 +v -0.109788 -0.009869 0.164309 +v -0.139733 -0.009869 0.139733 +v -0.164309 -0.009869 0.109788 +v -0.182570 -0.009869 0.075623 +v -0.193816 -0.009869 0.038552 +v -0.197613 -0.009869 -0.000000 +v -0.193816 -0.009869 -0.038552 +v -0.182570 -0.009869 -0.075623 +v -0.164309 -0.009869 -0.109788 +v -0.139733 -0.009869 -0.139733 +v -0.109788 -0.009869 -0.164309 +v -0.075623 -0.009869 -0.182570 +v -0.038552 -0.009869 -0.193816 +v 0.000000 -0.009869 -0.197613 +v 0.038552 -0.009869 -0.193816 +v 0.075623 -0.009869 -0.182570 +v 0.109788 -0.009869 -0.164309 +v 0.139733 -0.009869 -0.139733 +v 0.164309 -0.009869 -0.109788 +v 0.182570 -0.009869 -0.075623 +v 0.193816 -0.009869 -0.038552 +v 0.197613 -0.009869 -0.000000 +v 0.193816 -0.009869 0.038552 +v 0.182570 -0.009869 0.075623 +v 0.164309 -0.009869 0.109788 +v 0.139733 -0.009869 0.139733 +v 0.109788 -0.009869 0.164309 +v 0.075623 -0.009869 0.182570 +v 0.038552 -0.009869 0.193816 +v 0.188661 -0.006239 -0.078146 +v 0.188661 -0.001118 -0.078146 +v 0.169791 -0.001118 -0.113451 +v 0.169791 -0.006239 -0.113451 +v -0.200282 -0.006239 -0.039839 +v -0.200282 -0.001118 -0.039839 +v -0.204206 -0.001118 -0.000000 +v -0.204206 -0.006239 -0.000000 +v 0.200282 -0.006239 -0.039839 +v 0.200282 -0.001118 -0.039839 +v -0.188661 -0.006239 -0.078146 +v -0.188661 -0.001118 -0.078146 +v 0.204206 -0.006239 -0.000000 +v 0.204206 -0.001118 -0.000000 +v -0.169791 -0.006239 -0.113451 +v -0.169791 -0.001118 -0.113451 +v 0.200282 -0.006239 0.039839 +v 0.200282 -0.001118 0.039839 +v -0.144395 -0.006239 -0.144395 +v -0.144395 -0.001118 -0.144395 +v 0.188661 -0.006239 0.078146 +v 0.188661 -0.001118 0.078146 +v -0.113451 -0.006239 -0.169791 +v -0.113451 -0.001118 -0.169791 +v 0.169791 -0.006239 0.113451 +v 0.169791 -0.001118 0.113451 +v -0.078146 -0.006239 -0.188661 +v -0.078146 -0.001118 -0.188661 +v -0.039839 -0.006239 0.200282 +v -0.039839 -0.001118 0.200282 +v -0.000000 -0.001118 0.204206 +v -0.000000 -0.006239 0.204206 +v 0.144395 -0.006239 0.144395 +v 0.144395 -0.001118 0.144395 +v -0.039839 -0.006239 -0.200282 +v -0.039839 -0.001118 -0.200282 +v -0.078146 -0.006239 0.188661 +v -0.078146 -0.001118 0.188661 +v 0.113451 -0.006239 0.169791 +v 0.113451 -0.001118 0.169791 +v 0.000000 -0.006239 -0.204206 +v 0.000000 -0.001118 -0.204206 +v -0.113451 -0.006239 0.169791 +v -0.113451 -0.001118 0.169791 +v 0.078146 -0.006239 0.188661 +v 0.078146 -0.001118 0.188661 +v 0.039839 -0.006239 -0.200282 +v 0.039839 -0.001118 -0.200282 +v -0.144395 -0.006239 0.144395 +v -0.144395 -0.001118 0.144395 +v 0.039839 -0.006239 0.200282 +v 0.039839 -0.001118 0.200282 +v 0.078146 -0.006239 -0.188661 +v 0.078146 -0.001118 -0.188661 +v -0.169791 -0.006239 0.113451 +v -0.169791 -0.001118 0.113451 +v 0.113451 -0.006239 -0.169791 +v 0.113451 -0.001118 -0.169791 +v -0.188661 -0.006239 0.078146 +v -0.188661 -0.001118 0.078146 +v 0.144395 -0.006239 -0.144395 +v 0.144395 -0.001118 -0.144395 +v -0.200282 -0.006239 0.039839 +v -0.200282 -0.001118 0.039839 +v -0.000000 -0.009869 0.202216 +v -0.039450 -0.009869 0.198330 +v -0.077385 -0.009869 0.186823 +v -0.112345 -0.009869 0.168136 +v -0.142988 -0.009869 0.142988 +v -0.168136 -0.009869 0.112345 +v -0.186823 -0.009869 0.077385 +v -0.198330 -0.009869 0.039450 +v -0.202216 -0.009869 -0.000000 +v -0.198330 -0.009869 -0.039450 +v -0.186823 -0.009869 -0.077385 +v -0.168136 -0.009869 -0.112345 +v -0.142988 -0.009869 -0.142988 +v -0.112345 -0.009869 -0.168136 +v -0.077385 -0.009869 -0.186823 +v -0.039450 -0.009869 -0.198330 +v 0.000000 -0.009869 -0.202216 +v 0.039450 -0.009869 -0.198330 +v 0.077385 -0.009869 -0.186823 +v 0.112345 -0.009869 -0.168136 +v 0.142988 -0.009869 -0.142988 +v 0.168136 -0.009869 -0.112345 +v 0.186823 -0.009869 -0.077385 +v 0.198330 -0.009869 -0.039450 +v 0.202216 -0.009869 -0.000000 +v 0.198330 -0.009869 0.039450 +v 0.186823 -0.009869 0.077385 +v 0.168136 -0.009869 0.112345 +v 0.142988 -0.009869 0.142988 +v 0.112345 -0.009869 0.168136 +v 0.077385 -0.009869 0.186823 +v 0.039450 -0.009869 0.198330 +v -0.000000 0.012240 0.183178 +v -0.035736 0.012240 0.179658 +v -0.070099 0.012240 0.169234 +v -0.101768 0.012240 0.152307 +v -0.129526 0.012240 0.129526 +v -0.152307 0.012240 0.101768 +v -0.169234 0.012240 0.070099 +v -0.179658 0.012240 0.035736 +v -0.183178 0.012240 -0.000000 +v -0.179658 0.012240 -0.035736 +v -0.169234 0.012240 -0.070099 +v -0.152307 0.012240 -0.101768 +v -0.129526 0.012240 -0.129526 +v -0.101768 0.012240 -0.152307 +v -0.070099 0.012240 -0.169234 +v -0.035736 0.012240 -0.179658 +v 0.000000 0.012240 -0.183178 +v 0.035736 0.012240 -0.179658 +v 0.070099 0.012240 -0.169234 +v 0.101768 0.012240 -0.152307 +v 0.129526 0.012240 -0.129526 +v 0.152307 0.012240 -0.101768 +v 0.169234 0.012240 -0.070099 +v 0.179658 0.012240 -0.035736 +v 0.183178 0.012240 -0.000000 +v 0.179658 0.012240 0.035736 +v 0.169234 0.012240 0.070099 +v 0.152307 0.012240 0.101768 +v 0.129526 0.012240 0.129526 +v 0.101768 0.012240 0.152307 +v 0.070099 0.012240 0.169234 +v 0.035736 0.012240 0.179658 +v -0.037345 1.194055 0.187747 +v -0.000000 1.194055 0.191425 +v -0.073255 1.194055 0.176854 +v -0.106350 1.194055 0.159164 +v -0.135358 1.194055 0.135358 +v -0.159164 1.194055 0.106350 +v -0.176854 1.194055 0.073255 +v -0.187747 1.194055 0.037345 +v -0.191425 1.194055 -0.000000 +v -0.187747 1.194055 -0.037345 +v -0.176854 1.194055 -0.073255 +v -0.159164 1.194055 -0.106350 +v -0.135358 1.194055 -0.135358 +v -0.106350 1.194055 -0.159164 +v -0.073255 1.194055 -0.176854 +v -0.037345 1.194055 -0.187747 +v 0.000000 1.194055 -0.191425 +v 0.037345 1.194055 -0.187747 +v 0.073255 1.194055 -0.176854 +v 0.106350 1.194055 -0.159164 +v 0.135358 1.194055 -0.135358 +v 0.159164 1.194055 -0.106350 +v 0.176854 1.194055 -0.073255 +v 0.187747 1.194055 -0.037345 +v 0.191425 1.194055 -0.000000 +v 0.187747 1.194055 0.037345 +v 0.176854 1.194055 0.073255 +v 0.159164 1.194055 0.106350 +v 0.135358 1.194055 0.135358 +v 0.106350 1.194055 0.159164 +v 0.073255 1.194055 0.176854 +v 0.037345 1.194055 0.187747 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 0.1665 0.9860 +vn -0.1924 0.1665 0.9671 +vn -0.1951 -0.0000 0.9808 +vn -0.3773 0.1665 0.9110 +vn -0.3827 -0.0000 0.9239 +vn -0.5478 0.1665 0.8199 +vn -0.5556 -0.0000 0.8315 +vn -0.6972 0.1665 0.6972 +vn -0.7071 -0.0000 0.7071 +vn -0.8199 0.1665 0.5478 +vn -0.8315 -0.0000 0.5556 +vn -0.9110 0.1665 0.3773 +vn -0.9239 -0.0000 0.3827 +vn -0.9671 0.1665 0.1924 +vn -0.9808 -0.0000 0.1951 +vn -0.9860 0.1665 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.9671 0.1665 -0.1924 +vn -0.9808 -0.0000 -0.1951 +vn -0.9110 0.1665 -0.3773 +vn -0.9239 -0.0000 -0.3827 +vn -0.8199 0.1665 -0.5478 +vn -0.8315 -0.0000 -0.5556 +vn -0.6972 0.1665 -0.6972 +vn -0.7071 -0.0000 -0.7071 +vn -0.5478 0.1665 -0.8199 +vn -0.5556 -0.0000 -0.8315 +vn -0.3773 0.1665 -0.9110 +vn -0.3827 -0.0000 -0.9239 +vn -0.1924 0.1665 -0.9671 +vn -0.1951 -0.0000 -0.9808 +vn -0.0000 0.1665 -0.9860 +vn -0.0000 -0.0000 -1.0000 +vn 0.1924 0.1665 -0.9671 +vn 0.1951 -0.0000 -0.9808 +vn 0.3773 0.1665 -0.9110 +vn 0.3827 -0.0000 -0.9239 +vn 0.5478 0.1665 -0.8199 +vn 0.5556 -0.0000 -0.8315 +vn 0.6972 0.1665 -0.6972 +vn 0.7071 -0.0000 -0.7071 +vn 0.8199 0.1665 -0.5478 +vn 0.8315 -0.0000 -0.5556 +vn 0.9110 0.1665 -0.3773 +vn 0.9239 -0.0000 -0.3827 +vn 0.9671 0.1665 -0.1924 +vn 0.9808 -0.0000 -0.1951 +vn 0.9860 0.1665 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn 0.9671 0.1665 0.1924 +vn 0.9808 -0.0000 0.1951 +vn 0.9110 0.1665 0.3773 +vn 0.9239 -0.0000 0.3827 +vn 0.8199 0.1665 0.5478 +vn 0.8315 -0.0000 0.5556 +vn 0.6972 0.1665 0.6972 +vn 0.7071 -0.0000 0.7071 +vn 0.5478 0.1665 0.8199 +vn 0.5556 -0.0000 0.8315 +vn 0.3773 0.1665 0.9110 +vn 0.3827 -0.0000 0.9239 +vn -0.9253 0.3316 -0.1840 +vn -0.8716 0.3316 -0.3610 +vn 0.1924 0.1665 0.9671 +vn 0.1951 -0.0000 0.9808 +vn -0.7664 -0.5585 0.3174 +vn -0.8136 -0.5585 0.1618 +vn 0.7488 -0.5858 0.3102 +vn 0.7949 -0.5858 0.1581 +vn 0.3610 0.3316 -0.8716 +vn 0.5241 0.3316 -0.7844 +vn 0.7844 0.3316 0.5241 +vn 0.6671 0.3316 0.6671 +vn -0.7844 0.3316 0.5241 +vn -0.8716 0.3316 0.3610 +vn -0.3610 0.3316 -0.8716 +vn -0.1841 0.3316 -0.9253 +vn 0.9253 0.3316 -0.1840 +vn 0.9434 0.3316 -0.0000 +vn -0.1841 0.3316 0.9253 +vn -0.3610 0.3316 0.8716 +vn -0.7844 0.3316 -0.5241 +vn 0.6671 0.3316 -0.6671 +vn 0.5241 0.3316 0.7844 +vn -0.9253 0.3316 0.1840 +vn -0.0000 0.3316 -0.9434 +vn 0.9253 0.3316 0.1840 +vn -0.5241 0.3316 0.7844 +vn -0.6671 0.3316 -0.6671 +vn 0.7844 0.3316 -0.5241 +vn 0.3610 0.3316 0.8716 +vn -0.9434 0.3316 -0.0000 +vn 0.1841 0.3316 -0.9253 +vn 0.8716 0.3316 0.3610 +vn -0.6671 0.3316 0.6671 +vn -0.5241 0.3316 -0.7844 +vn 0.8716 0.3316 -0.3610 +vn 0.1840 0.3316 0.9253 +vn -0.0000 0.3316 0.9434 +vn -0.4503 -0.5858 -0.6739 +vn -0.5731 -0.5858 -0.5731 +vn -0.0000 -0.5858 0.8105 +vn 0.1581 -0.5858 0.7949 +vn -0.4503 0.5858 -0.6739 +vn -0.5731 0.5858 -0.5731 +vn -0.0000 0.5858 0.8105 +vn 0.1581 0.5858 0.7949 +vn 0.4503 -0.5858 0.6739 +vn 0.5731 -0.5858 0.5731 +vn -0.0000 -0.5858 -0.8105 +vn -0.1581 -0.5858 -0.7949 +vn -0.4503 -0.5858 0.6739 +vn -0.3102 -0.5858 0.7488 +vn 0.3102 -0.5858 0.7488 +vn 0.1581 -0.5858 -0.7949 +vn -0.5731 -0.5858 0.5731 +vn 0.3102 -0.5858 -0.7488 +vn -0.6739 -0.5858 0.4503 +vn 0.4503 -0.5858 -0.6739 +vn -0.1581 -0.5858 0.7949 +vn -0.7488 -0.5858 0.3102 +vn 0.5731 -0.5858 -0.5731 +vn -0.7949 -0.5858 0.1581 +vn 0.6739 -0.5858 -0.4503 +vn -0.8105 -0.5858 -0.0000 +vn 0.7488 -0.5858 -0.3101 +vn -0.7949 -0.5858 -0.1581 +vn 0.7949 -0.5858 -0.1581 +vn -0.7488 -0.5858 -0.3101 +vn 0.8105 -0.5858 -0.0000 +vn -0.6739 -0.5858 -0.4503 +vn 0.6739 -0.5858 0.4503 +vn -0.3102 -0.5858 -0.7488 +vn -0.6739 0.5858 -0.4503 +vn 0.7949 0.5858 0.1581 +vn 0.8105 0.5858 -0.0000 +vn -0.7488 0.5858 -0.3102 +vn 0.7949 0.5858 -0.1581 +vn -0.7949 0.5858 -0.1581 +vn 0.7488 0.5858 -0.3102 +vn -0.8105 0.5858 -0.0000 +vn 0.6739 0.5858 -0.4503 +vn -0.7949 0.5858 0.1581 +vn 0.5731 0.5858 -0.5731 +vn -0.7488 0.5858 0.3102 +vn 0.4503 0.5858 -0.6739 +vn -0.6739 0.5858 0.4503 +vn 0.3102 0.5858 -0.7488 +vn -0.5731 0.5858 0.5731 +vn 0.1581 0.5858 -0.7949 +vn 0.3102 0.5858 0.7488 +vn -0.4503 0.5858 0.6739 +vn -0.0000 0.5858 -0.8105 +vn 0.4503 0.5858 0.6739 +vn -0.3102 0.5858 0.7488 +vn -0.1581 0.5858 -0.7949 +vn 0.5731 0.5858 0.5731 +vn -0.1581 0.5858 0.7949 +vn -0.3102 0.5858 -0.7488 +vn 0.6739 0.5858 0.4503 +vn 0.7488 0.5858 0.3102 +vn -0.0000 1.0000 -0.0000 +vn 0.8102 0.4806 -0.3356 +vn 0.8601 0.4806 -0.1711 +vn 0.9510 0.2444 -0.1892 +vn 0.8959 0.2444 -0.3711 +vn -0.1618 -0.5585 -0.8136 +vn -0.0000 -0.5585 -0.8295 +vn 0.8295 -0.5585 -0.0000 +vn 0.8136 -0.5585 0.1618 +vn -0.3174 -0.5585 0.7664 +vn -0.4609 -0.5585 0.6897 +vn -0.6897 -0.5585 -0.4609 +vn -0.5866 -0.5585 -0.5866 +vn 0.5866 -0.5585 -0.5866 +vn 0.6897 -0.5585 -0.4609 +vn 0.4609 -0.5585 0.6897 +vn 0.3174 -0.5585 0.7664 +vn -0.8295 -0.5585 -0.0000 +vn 0.1618 -0.5585 -0.8136 +vn 0.7664 -0.5585 0.3174 +vn -0.5866 -0.5585 0.5866 +vn -0.4609 -0.5585 -0.6897 +vn 0.7664 -0.5585 -0.3174 +vn 0.1618 -0.5585 0.8136 +vn -0.8136 -0.5585 -0.1618 +vn 0.3174 -0.5585 -0.7664 +vn 0.6897 -0.5585 0.4609 +vn -0.6897 -0.5585 0.4609 +vn -0.3174 -0.5585 -0.7664 +vn 0.8136 -0.5585 -0.1618 +vn -0.0000 -0.5585 0.8295 +vn -0.1618 -0.5585 0.8136 +vn -0.7664 -0.5585 -0.3174 +vn 0.4609 -0.5585 -0.6897 +vn 0.5866 -0.5585 0.5866 +vn -0.5921 -0.5467 0.5921 +vn -0.6962 -0.5467 0.4652 +vn -0.8601 0.4806 -0.1711 +vn -0.8102 0.4806 -0.3356 +vn -0.8959 0.2444 -0.3711 +vn -0.9510 0.2444 -0.1892 +vn 0.7291 0.4806 -0.4872 +vn 0.8063 0.2444 -0.5387 +vn -0.8769 0.4806 -0.0000 +vn -0.9697 0.2444 -0.0000 +vn 0.8769 0.4806 -0.0000 +vn 0.9697 0.2444 -0.0000 +vn -0.7291 0.4806 -0.4872 +vn -0.8063 0.2444 -0.5387 +vn 0.8601 0.4806 0.1711 +vn 0.9510 0.2444 0.1892 +vn -0.6201 0.4806 -0.6201 +vn -0.6857 0.2444 -0.6857 +vn 0.8102 0.4806 0.3356 +vn 0.8959 0.2444 0.3711 +vn -0.4872 0.4806 -0.7291 +vn -0.5387 0.2444 -0.8063 +vn 0.7291 0.4806 0.4872 +vn 0.8063 0.2444 0.5387 +vn -0.3356 0.4806 -0.8102 +vn -0.3711 0.2444 -0.8959 +vn -0.1711 0.4806 0.8601 +vn -0.3356 0.4806 0.8102 +vn -0.3711 0.2444 0.8959 +vn -0.1892 0.2444 0.9510 +vn 0.6201 0.4806 0.6201 +vn 0.6857 0.2444 0.6857 +vn -0.1711 0.4806 -0.8601 +vn -0.1892 0.2444 -0.9510 +vn -0.0000 0.4806 0.8769 +vn -0.0000 0.2444 0.9697 +vn 0.4872 0.4806 0.7291 +vn 0.5387 0.2444 0.8063 +vn -0.0000 0.4806 -0.8769 +vn -0.0000 0.2444 -0.9697 +vn -0.4872 0.4806 0.7291 +vn -0.5387 0.2444 0.8063 +vn 0.3356 0.4806 0.8102 +vn 0.3711 0.2444 0.8959 +vn 0.1711 0.4806 -0.8601 +vn 0.1892 0.2444 -0.9510 +vn -0.6201 0.4806 0.6201 +vn -0.6857 0.2444 0.6857 +vn 0.1711 0.4806 0.8601 +vn 0.1892 0.2444 0.9510 +vn 0.3356 0.4806 -0.8102 +vn 0.3711 0.2444 -0.8959 +vn -0.7291 0.4806 0.4872 +vn -0.8063 0.2444 0.5387 +vn 0.6857 -0.2444 0.6857 +vn 0.5387 -0.2444 0.8063 +vn 0.4872 -0.4806 0.7291 +vn 0.6201 -0.4806 0.6201 +vn 0.4872 0.4806 -0.7291 +vn 0.5387 0.2444 -0.8063 +vn -0.8102 0.4806 0.3356 +vn -0.8959 0.2444 0.3711 +vn 0.6201 0.4806 -0.6201 +vn 0.6857 0.2444 -0.6857 +vn -0.8601 0.4806 0.1711 +vn -0.9510 0.2444 0.1892 +vn -0.9510 -0.2444 -0.1892 +vn -0.8959 -0.2444 -0.3711 +vn -0.8102 -0.4806 -0.3356 +vn -0.8601 -0.4806 -0.1711 +vn 0.9510 -0.2444 -0.1892 +vn 0.9697 -0.2444 -0.0000 +vn 0.8769 -0.4806 -0.0000 +vn 0.8601 -0.4806 -0.1711 +vn -0.9510 -0.2444 0.1892 +vn -0.9697 -0.2444 -0.0000 +vn -0.8769 -0.4806 -0.0000 +vn -0.8601 -0.4806 0.1711 +vn 0.6857 -0.2444 -0.6857 +vn 0.8063 -0.2444 -0.5387 +vn 0.7291 -0.4806 -0.4872 +vn 0.6201 -0.4806 -0.6201 +vn -0.8959 -0.2444 0.3711 +vn -0.8102 -0.4806 0.3356 +vn 0.5387 -0.2444 -0.8063 +vn 0.4872 -0.4806 -0.7291 +vn -0.8063 -0.2444 0.5387 +vn -0.7291 -0.4806 0.4872 +vn 0.1892 -0.2444 0.9510 +vn -0.0000 -0.2444 0.9697 +vn -0.0000 -0.4806 0.8769 +vn 0.1711 -0.4806 0.8601 +vn 0.3711 -0.2444 -0.8959 +vn 0.3356 -0.4806 -0.8102 +vn -0.6857 -0.2444 0.6857 +vn -0.6201 -0.4806 0.6201 +vn 0.1892 -0.2444 -0.9510 +vn 0.1711 -0.4806 -0.8601 +vn 0.3711 -0.2444 0.8959 +vn 0.3356 -0.4806 0.8102 +vn -0.5387 -0.2444 0.8063 +vn -0.4872 -0.4806 0.7291 +vn -0.0000 -0.2444 -0.9697 +vn -0.0000 -0.4806 -0.8769 +vn -0.3711 -0.2444 0.8959 +vn -0.3356 -0.4806 0.8102 +vn -0.1892 -0.2444 -0.9510 +vn -0.1711 -0.4806 -0.8601 +vn -0.1892 -0.2444 0.9510 +vn -0.1711 -0.4806 0.8601 +vn -0.3711 -0.2444 -0.8959 +vn -0.3356 -0.4806 -0.8102 +vn 0.8063 -0.2444 0.5387 +vn 0.7291 -0.4806 0.4872 +vn -0.5387 -0.2444 -0.8063 +vn -0.4872 -0.4806 -0.7291 +vn 0.8959 -0.2444 0.3711 +vn 0.8102 -0.4806 0.3356 +vn -0.6857 -0.2444 -0.6857 +vn -0.6201 -0.4806 -0.6201 +vn 0.9510 -0.2444 0.1892 +vn 0.8601 -0.4806 0.1711 +vn -0.8063 -0.2444 -0.5387 +vn -0.7291 -0.4806 -0.4872 +vn 0.8959 -0.2444 -0.3711 +vn 0.8102 -0.4806 -0.3356 +vn -0.0000 -1.0000 -0.0000 +vn 0.8213 -0.5467 -0.1634 +vn 0.8373 -0.5467 -0.0000 +vn -0.7736 -0.5467 0.3204 +vn 0.8213 -0.5467 0.1634 +vn -0.8213 -0.5467 0.1634 +vn 0.7736 -0.5467 0.3204 +vn -0.8373 -0.5467 -0.0000 +vn 0.6962 -0.5467 0.4652 +vn -0.8213 -0.5467 -0.1634 +vn 0.5921 -0.5467 0.5921 +vn -0.7736 -0.5467 -0.3204 +vn 0.4652 -0.5467 0.6962 +vn -0.6962 -0.5467 -0.4652 +vn 0.3204 -0.5467 0.7736 +vn -0.0000 -0.5467 -0.8373 +vn 0.1634 -0.5467 -0.8213 +vn -0.5921 -0.5467 -0.5921 +vn 0.1634 -0.5467 0.8213 +vn 0.3204 -0.5467 -0.7736 +vn -0.4652 -0.5467 -0.6962 +vn -0.0000 -0.5467 0.8373 +vn 0.4652 -0.5467 -0.6962 +vn -0.3204 -0.5467 -0.7736 +vn -0.1634 -0.5467 0.8213 +vn 0.5921 -0.5467 -0.5921 +vn -0.1634 -0.5467 -0.8213 +vn -0.3204 -0.5467 0.7736 +vn 0.6962 -0.5467 -0.4652 +vn -0.4652 -0.5467 0.6962 +vn 0.7736 -0.5467 -0.3204 +vt 0.769149 0.045079 +vt 0.769149 0.696279 +vt 0.745399 0.696279 +vt 0.745399 0.045079 +vt 0.721649 0.696279 +vt 0.721649 0.045079 +vt 0.697899 0.696279 +vt 0.697899 0.045079 +vt 0.674148 0.696279 +vt 0.674148 0.045079 +vt 0.650398 0.696279 +vt 0.650398 0.045079 +vt 0.626649 0.696279 +vt 0.626649 0.045079 +vt 0.602899 0.696279 +vt 0.602899 0.045079 +vt 0.579149 0.696279 +vt 0.579149 0.045079 +vt 0.555399 0.696279 +vt 0.555398 0.045079 +vt 0.531649 0.696279 +vt 0.531649 0.045079 +vt 0.507899 0.696279 +vt 0.507899 0.045079 +vt 0.484149 0.696279 +vt 0.484149 0.045079 +vt 0.460399 0.696279 +vt 0.460399 0.045079 +vt 0.436649 0.696279 +vt 0.436648 0.045079 +vt 0.412899 0.696279 +vt 0.412898 0.045079 +vt 0.389149 0.696279 +vt 0.389149 0.045079 +vt 0.365399 0.696279 +vt 0.365398 0.045079 +vt 0.341649 0.696279 +vt 0.341649 0.045079 +vt 0.317899 0.696279 +vt 0.317899 0.045079 +vt 0.294149 0.696279 +vt 0.294149 0.045079 +vt 0.270399 0.696279 +vt 0.270399 0.045079 +vt 0.246649 0.696279 +vt 0.246649 0.045079 +vt 0.222899 0.696279 +vt 0.222899 0.045079 +vt 0.199148 0.696279 +vt 0.199149 0.045079 +vt 0.175398 0.696279 +vt 0.175399 0.045079 +vt 0.151648 0.696279 +vt 0.151649 0.045079 +vt 0.127898 0.696279 +vt 0.127899 0.045079 +vt 0.104148 0.696279 +vt 0.104149 0.045079 +vt 0.080398 0.696279 +vt 0.080399 0.045079 +vt 0.056648 0.696279 +vt 0.056648 0.045079 +vt 0.555399 0.758023 +vt 0.531649 0.758023 +vt 0.032899 0.696279 +vt 0.032899 0.045079 +vt 0.009149 0.696279 +vt 0.009149 0.045079 +vt 0.602899 0.018915 +vt 0.626649 0.018915 +vt 0.151648 0.758023 +vt 0.175398 0.758023 +vt 0.175398 0.761979 +vt 0.151648 0.761979 +vt 0.341649 0.758023 +vt 0.317899 0.758023 +vt 0.127898 0.758023 +vt 0.104148 0.758023 +vt 0.650398 0.758023 +vt 0.626649 0.758023 +vt 0.436649 0.758023 +vt 0.412899 0.758023 +vt 0.222898 0.758023 +vt 0.199148 0.758023 +vt 0.745399 0.758023 +vt 0.721649 0.758023 +vt 0.507899 0.758023 +vt 0.294149 0.758023 +vt 0.080398 0.758023 +vt 0.602899 0.758023 +vt 0.389149 0.758023 +vt 0.697899 0.758023 +vt 0.484149 0.758023 +vt 0.270399 0.758023 +vt 0.056648 0.758023 +vt 0.579149 0.758023 +vt 0.365399 0.758023 +vt 0.674148 0.758023 +vt 0.460399 0.758023 +vt 0.246649 0.758023 +vt 0.032898 0.758023 +vt 0.769149 0.758023 +vt 0.009149 0.758023 +vt 0.294149 0.774405 +vt 0.317899 0.774405 +vt 0.317899 0.754637 +vt 0.294149 0.754637 +vt 0.484149 0.761979 +vt 0.460399 0.761979 +vt 0.032898 0.761979 +vt 0.009149 0.761979 +vt 0.460399 0.770449 +vt 0.484149 0.770449 +vt 0.484149 0.774405 +vt 0.460399 0.774405 +vt 0.009149 0.770449 +vt 0.032898 0.770449 +vt 0.032898 0.774405 +vt 0.009149 0.774405 +vt 0.104148 0.761979 +vt 0.080398 0.761979 +vt 0.412899 0.761979 +vt 0.389149 0.761979 +vt 0.721649 0.761979 +vt 0.697899 0.761979 +vt 0.056648 0.761979 +vt 0.365399 0.761979 +vt 0.674148 0.761979 +vt 0.341649 0.761979 +vt 0.650398 0.761979 +vt 0.317899 0.761979 +vt 0.769149 0.761979 +vt 0.745399 0.761979 +vt 0.626649 0.761979 +vt 0.294149 0.761979 +vt 0.602899 0.761979 +vt 0.270399 0.761979 +vt 0.579149 0.761979 +vt 0.246649 0.761979 +vt 0.555399 0.761979 +vt 0.222898 0.761979 +vt 0.531649 0.761979 +vt 0.199148 0.761979 +vt 0.507899 0.761979 +vt 0.127898 0.761979 +vt 0.436649 0.761979 +vt 0.507899 0.770449 +vt 0.507899 0.774405 +vt 0.175398 0.770449 +vt 0.199148 0.770449 +vt 0.199148 0.774405 +vt 0.175398 0.774405 +vt 0.531649 0.770449 +vt 0.531649 0.774405 +vt 0.222898 0.770449 +vt 0.222898 0.774405 +vt 0.555399 0.770449 +vt 0.555399 0.774405 +vt 0.246649 0.770449 +vt 0.246649 0.774405 +vt 0.579149 0.770449 +vt 0.579149 0.774405 +vt 0.270399 0.770449 +vt 0.270399 0.774405 +vt 0.602899 0.770449 +vt 0.602899 0.774405 +vt 0.294149 0.770449 +vt 0.626649 0.770449 +vt 0.626649 0.774405 +vt 0.317899 0.770449 +vt 0.650398 0.770449 +vt 0.650398 0.774405 +vt 0.341649 0.770449 +vt 0.341649 0.774405 +vt 0.674148 0.770449 +vt 0.674148 0.774405 +vt 0.365399 0.770449 +vt 0.365399 0.774405 +vt 0.056648 0.770449 +vt 0.056648 0.774405 +vt 0.697899 0.770449 +vt 0.697899 0.774405 +vt 0.389149 0.770449 +vt 0.389149 0.774405 +vt 0.080398 0.770449 +vt 0.080398 0.774405 +vt 0.721649 0.770449 +vt 0.721649 0.774405 +vt 0.412899 0.770449 +vt 0.412899 0.774405 +vt 0.104148 0.770449 +vt 0.104148 0.774405 +vt 0.745399 0.770449 +vt 0.745399 0.774405 +vt 0.436649 0.770449 +vt 0.436649 0.774405 +vt 0.127898 0.770449 +vt 0.127898 0.774405 +vt 0.769149 0.770449 +vt 0.769149 0.774405 +vt 0.151648 0.770449 +vt 0.151648 0.774405 +vt 0.626649 0.754637 +vt 0.602899 0.754637 +vt 0.270399 0.754637 +vt 0.579149 0.754637 +vt 0.246648 0.754637 +vt 0.555399 0.754637 +vt 0.222898 0.754637 +vt 0.531649 0.754637 +vt 0.199148 0.754637 +vt 0.507899 0.754637 +vt 0.175398 0.754637 +vt 0.484149 0.754637 +vt 0.151648 0.754637 +vt 0.460399 0.754637 +vt 0.127898 0.754637 +vt 0.436649 0.754637 +vt 0.769149 0.754637 +vt 0.745399 0.754637 +vt 0.104148 0.754637 +vt 0.412899 0.754637 +vt 0.721649 0.754637 +vt 0.080398 0.754637 +vt 0.389149 0.754637 +vt 0.697899 0.754637 +vt 0.056648 0.754637 +vt 0.365399 0.754637 +vt 0.674148 0.754637 +vt 0.032898 0.754637 +vt 0.341649 0.754637 +vt 0.650398 0.754637 +vt 0.009149 0.754637 +vt 0.246649 0.018915 +vt 0.222899 0.018915 +vt 0.222899 0.016646 +vt 0.246649 0.016646 +vt 0.389149 0.018915 +vt 0.412898 0.018915 +vt 0.175399 0.018915 +vt 0.199149 0.018915 +vt 0.697899 0.018915 +vt 0.721649 0.018915 +vt 0.484148 0.018915 +vt 0.507899 0.018915 +vt 0.270399 0.018915 +vt 0.294149 0.018915 +vt 0.056649 0.018915 +vt 0.080399 0.018915 +vt 0.579149 0.018915 +vt 0.365398 0.018915 +vt 0.151649 0.018915 +vt 0.674148 0.018915 +vt 0.460399 0.018915 +vt 0.032899 0.018915 +vt 0.555398 0.018915 +vt 0.341649 0.018915 +vt 0.127899 0.018915 +vt 0.650398 0.018915 +vt 0.436648 0.018915 +vt 0.745399 0.018915 +vt 0.769149 0.018915 +vt 0.009149 0.018915 +vt 0.531649 0.018915 +vt 0.317899 0.018915 +vt 0.104149 0.018915 +vt 0.294149 0.011176 +vt 0.270399 0.011176 +vt 0.270399 0.024995 +vt 0.294149 0.024995 +vt 0.531649 0.016646 +vt 0.555398 0.016646 +vt 0.270399 0.016646 +vt 0.579149 0.016646 +vt 0.199149 0.016646 +vt 0.507899 0.016646 +vt 0.175399 0.016646 +vt 0.484148 0.016646 +vt 0.151649 0.016646 +vt 0.460399 0.016646 +vt 0.127899 0.016646 +vt 0.436648 0.016646 +vt 0.721649 0.016646 +vt 0.745399 0.016646 +vt 0.104149 0.016646 +vt 0.412898 0.016646 +vt 0.769149 0.016646 +vt 0.080399 0.016646 +vt 0.389149 0.016646 +vt 0.697899 0.016646 +vt 0.056649 0.016646 +vt 0.365398 0.016646 +vt 0.674148 0.016646 +vt 0.032899 0.016646 +vt 0.341649 0.016646 +vt 0.650398 0.016646 +vt 0.104149 0.013445 +vt 0.080399 0.013445 +vt 0.080399 0.011176 +vt 0.104149 0.011176 +vt 0.317899 0.016646 +vt 0.626649 0.016646 +vt 0.294149 0.016646 +vt 0.602899 0.016646 +vt 0.555398 0.013445 +vt 0.531649 0.013445 +vt 0.531649 0.011176 +vt 0.555398 0.011176 +vt 0.222899 0.013445 +vt 0.199149 0.013445 +vt 0.199149 0.011176 +vt 0.222899 0.011176 +vt 0.602899 0.013445 +vt 0.579149 0.013445 +vt 0.579149 0.011176 +vt 0.602899 0.011176 +vt 0.294149 0.013445 +vt 0.270399 0.013445 +vt 0.626649 0.013445 +vt 0.626649 0.011176 +vt 0.317899 0.013445 +vt 0.317899 0.011176 +vt 0.650398 0.013445 +vt 0.650398 0.011176 +vt 0.032899 0.013445 +vt 0.009149 0.013445 +vt 0.009149 0.011176 +vt 0.032899 0.011176 +vt 0.341649 0.013445 +vt 0.341649 0.011176 +vt 0.674148 0.013445 +vt 0.674148 0.011176 +vt 0.365398 0.013445 +vt 0.365398 0.011176 +vt 0.056649 0.013445 +vt 0.056649 0.011176 +vt 0.697899 0.013445 +vt 0.697899 0.011176 +vt 0.389149 0.013445 +vt 0.389149 0.011176 +vt 0.721649 0.013445 +vt 0.721649 0.011176 +vt 0.412898 0.013445 +vt 0.412898 0.011176 +vt 0.009149 0.016646 +vt 0.745399 0.013445 +vt 0.745399 0.011176 +vt 0.436648 0.013445 +vt 0.436648 0.011176 +vt 0.769149 0.013445 +vt 0.769149 0.011176 +vt 0.127899 0.013445 +vt 0.127899 0.011176 +vt 0.460399 0.013445 +vt 0.460399 0.011176 +vt 0.151649 0.013445 +vt 0.151649 0.011176 +vt 0.484148 0.013445 +vt 0.484148 0.011176 +vt 0.175399 0.013445 +vt 0.175399 0.011176 +vt 0.507899 0.013445 +vt 0.507899 0.011176 +vt 0.246649 0.013445 +vt 0.246649 0.011176 +vt 0.317898 0.011176 +vt 0.852947 0.217272 +vt 0.833579 0.209249 +vt 0.816148 0.197602 +vt 0.801324 0.182778 +vt 0.789677 0.165347 +vt 0.781654 0.145979 +vt 0.777564 0.125417 +vt 0.777564 0.104453 +vt 0.781654 0.083892 +vt 0.789677 0.064523 +vt 0.801324 0.047092 +vt 0.816148 0.032268 +vt 0.833579 0.020621 +vt 0.852947 0.012599 +vt 0.873509 0.008509 +vt 0.894473 0.008509 +vt 0.915034 0.012599 +vt 0.934402 0.020621 +vt 0.951834 0.032268 +vt 0.966657 0.047092 +vt 0.978305 0.064523 +vt 0.986327 0.083892 +vt 0.990417 0.104453 +vt 0.990417 0.125417 +vt 0.986327 0.145979 +vt 0.978305 0.165347 +vt 0.966657 0.182778 +vt 0.951834 0.197602 +vt 0.934402 0.209249 +vt 0.915034 0.217272 +vt 0.894473 0.221362 +vt 0.873508 0.221362 +vt 0.579149 0.024995 +vt 0.602899 0.024995 +vt 0.246649 0.024995 +vt 0.555398 0.024995 +vt 0.222899 0.024995 +vt 0.531649 0.024995 +vt 0.199149 0.024995 +vt 0.507899 0.024995 +vt 0.175399 0.024995 +vt 0.484148 0.024995 +vt 0.151649 0.024995 +vt 0.460399 0.024995 +vt 0.127899 0.024995 +vt 0.436648 0.024995 +vt 0.745399 0.024995 +vt 0.769149 0.024995 +vt 0.104149 0.024995 +vt 0.412898 0.024995 +vt 0.721649 0.024995 +vt 0.080399 0.024995 +vt 0.389149 0.024995 +vt 0.697899 0.024995 +vt 0.056649 0.024995 +vt 0.365398 0.024995 +vt 0.674148 0.024995 +vt 0.032899 0.024995 +vt 0.341649 0.024995 +vt 0.650398 0.024995 +vt 0.009149 0.024995 +vt 0.317898 0.024995 +vt 0.626649 0.024995 +vt 0.959679 0.255095 +vt 0.975171 0.270586 +vt 0.987342 0.288802 +vt 0.995726 0.309043 +vt 1.000000 0.330530 +vt 1.000000 0.352438 +vt 0.995726 0.373925 +vt 0.987342 0.394165 +vt 0.975171 0.412381 +vt 0.959679 0.427872 +vt 0.941463 0.440044 +vt 0.921223 0.448428 +vt 0.899736 0.452702 +vt 0.877828 0.452702 +vt 0.856341 0.448428 +vt 0.836101 0.440044 +vt 0.817885 0.427872 +vt 0.802393 0.412381 +vt 0.790222 0.394165 +vt 0.781838 0.373925 +vt 0.777564 0.352438 +vt 0.777564 0.330530 +vt 0.781838 0.309043 +vt 0.790222 0.288802 +vt 0.802393 0.270586 +vt 0.817885 0.255095 +vt 0.836101 0.242924 +vt 0.856341 0.234540 +vt 0.877828 0.230266 +vt 0.899736 0.230266 +vt 0.921223 0.234540 +vt 0.941464 0.242924 +s 1 +usemtl Material.001 +f 1/1/1 2/2/2 4/3/3 3/4/4 +f 3/4/4 4/3/3 6/5/5 5/6/6 +f 5/6/6 6/5/5 8/7/7 7/8/8 +f 7/8/8 8/7/7 10/9/9 9/10/10 +f 9/10/10 10/9/9 12/11/11 11/12/12 +f 11/12/12 12/11/11 14/13/13 13/14/14 +f 13/14/14 14/13/13 16/15/15 15/16/16 +f 15/16/16 16/15/15 18/17/17 17/18/18 +f 17/18/18 18/17/17 20/19/19 19/20/20 +f 19/20/20 20/19/19 22/21/21 21/22/22 +f 21/22/22 22/21/21 24/23/23 23/24/24 +f 23/24/24 24/23/23 26/25/25 25/26/26 +f 25/26/26 26/25/25 28/27/27 27/28/28 +f 27/28/28 28/27/27 30/29/29 29/30/30 +f 29/30/30 30/29/29 32/31/31 31/32/32 +f 31/32/32 32/31/31 34/33/33 33/34/34 +f 33/34/34 34/33/33 36/35/35 35/36/36 +f 35/36/36 36/35/35 38/37/37 37/38/38 +f 37/38/38 38/37/37 40/39/39 39/40/40 +f 39/40/40 40/39/39 42/41/41 41/42/42 +f 41/42/42 42/41/41 44/43/43 43/44/44 +f 43/44/44 44/43/43 46/45/45 45/46/46 +f 45/46/46 46/45/45 48/47/47 47/48/48 +f 47/48/48 48/47/47 50/49/49 49/50/50 +f 49/50/50 50/49/49 52/51/51 51/52/52 +f 51/52/52 52/51/51 54/53/53 53/54/54 +f 53/54/54 54/53/53 56/55/55 55/56/56 +f 55/56/56 56/55/55 58/57/57 57/58/58 +f 57/58/58 58/57/57 60/59/59 59/60/60 +f 59/60/60 60/59/59 62/61/61 61/62/62 +f 22/21/21 20/19/19 74/63/63 75/64/64 +f 61/62/62 62/61/61 64/65/65 63/66/66 +f 63/66/66 64/65/65 2/67/2 1/68/1 +f 13/14/67 15/16/68 264/69/68 263/70/67 +f 91/71/69 90/72/70 189/73/70 130/74/69 +f 40/39/39 38/37/37 83/75/71 84/76/72 +f 58/57/57 56/55/55 92/77/73 93/78/74 +f 14/13/13 12/11/11 70/79/75 71/80/76 +f 32/31/31 30/29/29 79/81/77 80/82/78 +f 50/49/49 48/47/47 88/83/79 89/84/80 +f 6/5/5 4/3/3 65/85/81 67/86/82 +f 24/23/23 22/21/21 75/64/64 76/87/83 +f 42/41/41 40/39/39 84/76/72 85/88/84 +f 60/59/59 58/57/57 93/78/74 94/89/85 +f 16/15/15 14/13/13 71/80/76 72/90/86 +f 34/33/33 32/31/31 80/82/78 81/91/87 +f 52/51/51 50/49/49 89/84/80 90/72/88 +f 8/7/7 6/5/5 67/86/82 68/92/89 +f 26/25/25 24/23/23 76/87/83 77/93/90 +f 44/43/43 42/41/41 85/88/84 86/94/91 +f 62/61/61 60/59/59 94/89/85 95/95/92 +f 18/17/17 16/15/15 72/90/86 73/96/93 +f 36/35/35 34/33/33 81/91/87 82/97/94 +f 54/53/53 52/51/51 90/72/88 91/71/95 +f 10/9/9 8/7/7 68/92/89 69/98/96 +f 28/27/27 26/25/25 77/93/90 78/99/97 +f 46/45/45 44/43/43 86/94/91 87/100/98 +f 64/65/65 62/61/61 95/95/92 96/101/99 +f 20/19/19 18/17/17 73/96/93 74/63/63 +f 38/37/37 36/35/35 82/97/94 83/75/71 +f 56/55/55 54/53/53 91/71/95 92/77/73 +f 12/11/11 10/9/9 69/98/96 70/79/75 +f 30/29/29 28/27/27 78/99/97 79/81/77 +f 48/47/47 46/45/45 87/100/98 88/83/79 +f 4/3/3 2/2/2 66/102/100 65/85/81 +f 2/67/2 64/65/65 96/101/99 66/103/100 +f 117/104/10 116/105/8 244/106/8 245/107/10 +f 78/99/101 77/93/102 191/108/102 134/109/101 +f 66/103/103 96/101/104 159/110/104 138/111/103 +f 133/112/105 192/113/106 205/114/106 206/115/105 +f 137/116/107 160/117/108 224/118/108 194/119/107 +f 94/89/109 93/78/110 141/120/110 147/121/109 +f 81/91/111 80/82/112 143/122/112 149/123/111 +f 68/92/113 67/86/114 145/124/114 151/125/113 +f 95/95/115 94/89/109 147/121/109 153/126/115 +f 82/97/116 81/91/111 149/123/111 155/127/116 +f 69/98/117 68/92/113 151/125/113 157/128/117 +f 96/101/104 95/95/115 153/126/115 159/110/104 +f 83/75/118 82/97/116 155/127/116 161/129/118 +f 70/79/119 69/98/117 157/128/117 163/130/119 +f 84/76/120 83/75/118 161/129/118 165/131/120 +f 65/85/121 66/102/103 138/132/103 139/133/121 +f 71/80/122 70/79/119 163/130/119 167/134/122 +f 85/88/123 84/76/120 165/131/120 169/135/123 +f 72/90/124 71/80/122 167/134/122 171/136/124 +f 86/94/125 85/88/123 169/135/123 173/137/125 +f 73/96/126 72/90/124 171/136/124 175/138/126 +f 87/100/127 86/94/125 173/137/125 177/139/127 +f 74/63/128 73/96/126 175/138/126 179/140/128 +f 88/83/129 87/100/127 177/139/127 181/141/129 +f 75/64/130 74/63/128 179/140/128 183/142/130 +f 89/84/131 88/83/129 181/141/129 185/143/131 +f 76/87/132 75/64/130 183/142/130 187/144/132 +f 90/72/70 89/84/131 185/143/131 189/73/70 +f 77/93/102 76/87/132 187/144/132 191/108/102 +f 92/77/133 91/71/69 130/74/69 131/145/133 +f 79/81/134 78/99/101 134/109/101 135/146/134 +f 80/82/112 79/81/134 135/146/134 143/122/112 +f 93/78/110 92/77/133 131/145/133 141/120/110 +f 192/113/106 188/147/135 204/148/135 205/114/106 +f 190/149/136 186/150/137 217/151/137 218/152/136 +f 188/147/135 184/153/138 203/154/138 204/148/135 +f 186/150/137 182/155/139 216/156/139 217/151/137 +f 184/153/138 180/157/140 202/158/140 203/154/138 +f 182/155/139 178/159/141 215/160/141 216/156/139 +f 180/157/140 176/161/142 201/162/142 202/158/140 +f 178/159/141 174/163/143 214/164/143 215/160/141 +f 176/161/142 172/165/144 200/166/144 201/162/142 +f 174/163/143 170/167/145 213/104/145 214/164/143 +f 172/165/144 168/168/146 199/169/146 200/166/144 +f 170/167/145 166/170/147 212/105/147 213/104/145 +f 168/168/146 164/171/148 198/172/148 199/169/146 +f 166/170/147 162/173/149 211/174/149 212/105/147 +f 67/86/114 65/85/121 139/133/121 145/124/114 +f 164/171/148 158/175/150 197/176/150 198/172/148 +f 162/173/149 156/177/151 210/178/151 211/174/149 +f 160/117/108 154/179/152 223/180/152 224/118/108 +f 158/175/150 152/181/153 196/182/153 197/176/150 +f 156/177/151 150/183/154 209/184/154 210/178/151 +f 154/179/152 148/185/155 222/186/155 223/180/152 +f 152/181/153 146/187/156 195/188/156 196/182/153 +f 150/183/154 144/189/157 208/190/157 209/184/154 +f 148/185/155 142/191/158 221/192/158 222/186/155 +f 146/187/156 140/193/159 193/194/159 195/188/156 +f 144/189/157 136/195/160 207/196/160 208/190/157 +f 142/191/158 132/197/161 220/198/161 221/192/158 +f 140/193/159 137/199/107 194/200/107 193/194/159 +f 136/195/160 133/112/105 206/115/105 207/196/160 +f 132/197/161 129/201/162 219/202/162 220/198/161 +f 192/113/26 133/112/28 134/109/28 191/108/26 +f 190/149/52 129/201/54 130/74/54 189/73/52 +f 188/147/24 192/113/26 191/108/26 187/144/24 +f 186/150/50 190/149/52 189/73/52 185/143/50 +f 184/153/22 188/147/24 187/144/24 183/142/22 +f 182/155/48 186/150/50 185/143/50 181/141/48 +f 180/157/20 184/153/22 183/142/22 179/140/20 +f 178/159/46 182/155/48 181/141/48 177/139/46 +f 176/161/18 180/157/20 179/140/20 175/138/18 +f 174/163/44 178/159/46 177/139/46 173/137/44 +f 172/165/16 176/161/18 175/138/18 171/136/16 +f 170/167/42 174/163/44 173/137/44 169/135/42 +f 168/168/14 172/165/16 171/136/16 167/134/14 +f 166/170/40 170/167/42 169/135/42 165/131/40 +f 164/171/12 168/168/14 167/134/14 163/130/12 +f 162/173/38 166/170/40 165/131/40 161/129/38 +f 160/117/66 137/116/1 138/111/1 159/110/66 +f 158/175/10 164/171/12 163/130/12 157/128/10 +f 156/177/36 162/173/38 161/129/38 155/127/36 +f 154/179/62 160/117/66 159/110/66 153/126/62 +f 152/181/8 158/175/10 157/128/10 151/125/8 +f 150/183/34 156/177/36 155/127/36 149/123/34 +f 148/185/60 154/179/62 153/126/62 147/121/60 +f 146/187/6 152/181/8 151/125/8 145/124/6 +f 144/189/32 150/183/34 149/123/34 143/122/32 +f 142/191/58 148/185/60 147/121/60 141/120/58 +f 140/193/4 146/187/6 145/124/6 139/133/4 +f 136/195/30 144/189/32 143/122/32 135/146/30 +f 132/197/56 142/191/58 141/120/58 131/145/56 +f 137/199/1 140/193/4 139/133/4 138/132/1 +f 133/112/28 136/195/30 135/146/30 134/109/28 +f 129/201/54 132/197/56 131/145/56 130/74/54 +f 129/201/162 190/149/136 218/152/136 219/202/162 +f 98/200/163 97/194/163 193/194/163 194/200/163 +f 97/194/163 99/188/163 195/188/163 193/194/163 +f 99/188/163 100/182/163 196/182/163 195/188/163 +f 100/182/163 101/176/163 197/176/163 196/182/163 +f 101/176/163 102/172/163 198/172/163 197/176/163 +f 102/172/163 103/169/163 199/169/163 198/172/163 +f 103/169/163 104/166/163 200/166/163 199/169/163 +f 104/166/163 105/162/163 201/162/163 200/166/163 +f 105/162/163 106/158/163 202/158/163 201/162/163 +f 106/158/163 107/154/163 203/154/163 202/158/163 +f 107/154/163 108/148/163 204/148/163 203/154/163 +f 108/148/163 109/114/163 205/114/163 204/148/163 +f 109/114/163 110/115/163 206/115/163 205/114/163 +f 110/115/163 111/196/163 207/196/163 206/115/163 +f 111/196/163 112/190/163 208/190/163 207/196/163 +f 112/190/163 113/184/163 209/184/163 208/190/163 +f 113/184/163 114/178/163 210/178/163 209/184/163 +f 114/178/163 115/174/163 211/174/163 210/178/163 +f 115/174/163 116/105/163 212/105/163 211/174/163 +f 116/105/163 117/104/163 213/104/163 212/105/163 +f 117/104/163 118/164/163 214/164/163 213/104/163 +f 118/164/163 119/160/163 215/160/163 214/164/163 +f 119/160/163 120/156/163 216/156/163 215/160/163 +f 120/156/163 121/151/163 217/151/163 216/156/163 +f 121/151/163 122/152/163 218/152/163 217/151/163 +f 122/152/163 123/202/163 219/202/163 218/152/163 +f 123/202/163 124/198/163 220/198/163 219/202/163 +f 124/198/163 125/192/163 221/192/163 220/198/163 +f 125/192/163 126/186/163 222/186/163 221/192/163 +f 126/186/163 127/180/163 223/180/163 222/186/163 +f 127/180/163 128/118/163 224/118/163 223/180/163 +f 128/118/163 98/119/163 194/119/163 224/118/163 +f 245/107/42 244/106/40 468/106/40 469/107/42 +f 104/166/48 103/169/46 231/203/46 232/204/48 +f 118/164/12 117/104/10 245/107/10 246/205/12 +f 105/162/50 104/166/48 232/204/48 233/206/50 +f 119/160/14 118/164/12 246/205/12 247/207/14 +f 106/158/52 105/162/50 233/206/50 234/208/52 +f 120/156/16 119/160/14 247/207/14 248/209/16 +f 107/154/54 106/158/52 234/208/52 235/210/54 +f 121/151/18 120/156/16 248/209/16 249/211/18 +f 108/148/56 107/154/54 235/210/54 236/212/56 +f 122/152/20 121/151/18 249/211/18 250/213/20 +f 109/114/58 108/148/56 236/212/56 237/214/58 +f 123/202/22 122/152/20 250/213/20 251/215/22 +f 110/115/60 109/114/58 237/214/58 238/216/60 +f 124/198/24 123/202/22 251/215/22 252/217/24 +f 111/196/62 110/115/60 238/216/60 239/218/62 +f 97/194/36 98/200/34 226/219/34 225/220/36 +f 125/192/26 124/198/24 252/217/24 253/221/26 +f 112/190/66 111/196/62 239/218/62 240/222/66 +f 99/188/38 97/194/36 225/220/36 227/223/38 +f 126/186/28 125/192/26 253/221/26 254/224/28 +f 113/184/1 112/190/66 240/222/66 241/225/1 +f 100/182/40 99/188/38 227/223/38 228/226/40 +f 127/180/30 126/186/28 254/224/28 255/227/30 +f 114/178/4 113/184/1 241/225/1 242/228/4 +f 101/176/42 100/182/40 228/226/40 229/229/42 +f 128/118/32 127/180/30 255/227/30 256/230/32 +f 115/174/6 114/178/4 242/228/4 243/231/6 +f 102/172/44 101/176/42 229/229/42 230/232/44 +f 98/119/34 128/118/32 256/230/32 226/233/34 +f 116/105/8 115/174/6 243/231/6 244/106/8 +f 103/169/46 102/172/44 230/232/44 231/203/46 +f 279/234/164 280/235/165 330/236/166 322/237/167 +f 31/32/168 33/34/169 273/238/169 272/239/168 +f 49/50/170 51/52/171 282/240/171 281/241/170 +f 5/6/172 7/8/173 260/242/173 259/243/172 +f 23/24/174 25/26/175 269/244/175 268/245/174 +f 41/42/176 43/44/177 278/246/177 277/247/176 +f 59/60/178 61/62/179 287/248/179 286/249/178 +f 15/16/68 17/18/180 265/250/180 264/69/68 +f 33/34/169 35/36/181 274/251/181 273/238/169 +f 51/52/171 53/54/182 283/252/182 282/240/171 +f 7/8/173 9/10/183 261/253/183 260/242/173 +f 25/26/175 27/28/184 270/254/184 269/244/175 +f 43/44/177 45/46/185 279/234/185 278/246/177 +f 61/62/179 63/66/186 288/255/186 287/248/179 +f 17/18/180 19/20/187 266/256/187 265/250/180 +f 35/36/181 37/38/188 275/257/188 274/251/181 +f 53/54/182 55/56/189 284/258/189 283/252/182 +f 9/10/183 11/12/190 262/259/190 261/253/183 +f 27/28/184 29/30/191 271/260/191 270/254/184 +f 45/46/185 47/48/192 280/235/192 279/234/185 +f 1/1/193 3/4/194 258/261/194 257/262/193 +f 63/66/186 1/68/193 257/263/193 288/255/186 +f 19/20/187 21/22/195 267/264/195 266/256/187 +f 37/38/188 39/40/196 276/265/196 275/257/188 +f 55/56/189 57/58/197 285/266/197 284/258/189 +f 11/12/190 13/14/67 263/70/67 262/259/190 +f 29/30/191 31/32/168 272/239/168 271/260/191 +f 47/48/192 49/50/170 281/241/170 280/235/192 +f 3/4/194 5/6/172 259/243/172 258/261/194 +f 21/22/195 23/24/174 268/245/174 267/264/195 +f 39/40/196 41/42/176 277/247/176 276/265/196 +f 57/58/197 59/60/178 286/249/178 285/266/197 +f 309/267/198 310/268/199 438/269/199 437/270/198 +f 266/256/200 267/264/201 332/271/202 326/272/203 +f 278/246/204 279/234/164 322/237/167 323/273/205 +f 265/250/206 266/256/200 326/272/203 327/274/207 +f 280/235/165 281/241/208 334/275/209 330/236/166 +f 267/264/201 268/245/210 336/276/211 332/271/202 +f 281/241/208 282/240/212 338/277/213 334/275/209 +f 268/245/210 269/244/214 340/278/215 336/276/211 +f 282/240/212 283/252/216 342/279/217 338/277/213 +f 269/244/214 270/254/218 344/280/219 340/278/215 +f 283/252/216 284/258/220 346/281/221 342/279/217 +f 270/254/218 271/260/222 348/282/223 344/280/219 +f 258/261/224 259/243/225 358/283/226 350/284/227 +f 284/258/220 285/266/228 354/285/229 346/281/221 +f 271/260/222 272/239/230 356/286/231 348/282/223 +f 257/262/232 258/261/224 350/284/227 351/287/233 +f 285/266/228 286/249/234 360/288/235 354/285/229 +f 272/239/230 273/238/236 362/289/237 356/286/231 +f 259/243/225 260/242/238 364/290/239 358/283/226 +f 286/249/234 287/248/240 366/291/241 360/288/235 +f 273/238/236 274/251/242 368/292/243 362/289/237 +f 260/242/238 261/253/244 370/293/245 364/290/239 +f 287/248/240 288/255/246 372/294/247 366/291/241 +f 274/251/242 275/257/248 374/295/249 368/292/243 +f 261/253/244 262/259/250 376/296/251 370/293/245 +f 353/297/252 359/298/253 414/299/254 413/300/255 +f 275/257/248 276/265/256 378/301/257 374/295/249 +f 262/259/250 263/70/258 380/302/259 376/296/251 +f 276/265/256 277/247/260 382/303/261 378/301/257 +f 263/70/258 264/69/262 384/304/263 380/302/259 +f 325/305/264 331/306/265 395/307/266 394/308/267 +f 329/309/268 333/310/269 409/311/270 408/312/271 +f 383/313/272 328/314/273 393/315/274 392/316/275 +f 381/317/276 324/318/277 406/268/278 405/267/279 +f 379/319/280 383/313/272 392/316/275 391/320/281 +f 377/321/282 381/317/276 405/267/279 404/322/283 +f 375/323/284 379/319/280 391/320/281 390/324/285 +f 371/325/286 352/326/287 385/327/288 416/328/289 +f 373/329/290 377/321/282 404/322/283 403/330/291 +f 369/331/292 375/323/284 390/324/285 389/332/293 +f 367/333/294 373/329/290 403/330/291 402/334/295 +f 365/335/296 371/325/286 416/328/289 415/336/297 +f 363/337/298 369/331/292 389/332/293 388/338/299 +f 361/339/300 367/333/294 402/334/295 401/340/301 +f 359/298/253 365/335/296 415/336/297 414/299/254 +f 357/341/302 363/337/298 388/338/299 387/342/303 +f 355/343/304 361/339/300 401/340/301 400/344/305 +f 288/255/246 257/263/232 351/345/233 372/294/247 +f 349/346/306 357/341/302 387/342/303 386/347/307 +f 347/348/308 355/343/304 400/344/305 399/349/309 +f 352/350/287 349/346/306 386/347/307 385/351/288 +f 345/352/310 353/297/252 413/300/255 412/353/311 +f 343/354/312 347/348/308 399/349/309 398/355/313 +f 341/356/314 345/352/310 412/353/311 411/357/315 +f 339/358/316 343/354/312 398/355/313 397/359/317 +f 337/360/318 341/356/314 411/357/315 410/361/319 +f 335/362/320 339/358/316 397/359/317 396/363/321 +f 333/310/269 337/360/318 410/361/319 409/311/270 +f 331/306/265 335/362/320 396/363/321 395/307/266 +f 264/69/262 265/250/206 327/274/207 384/304/263 +f 277/247/260 278/246/204 323/273/205 382/303/261 +f 328/314/273 325/305/264 394/308/267 393/315/274 +f 324/318/277 321/364/322 407/365/323 406/268/278 +f 328/314/273 383/313/272 384/304/263 327/274/207 +f 324/318/277 381/317/276 382/303/261 323/273/205 +f 383/313/272 379/319/280 380/302/259 384/304/263 +f 381/317/276 377/321/282 378/301/257 382/303/261 +f 379/319/280 375/323/284 376/296/251 380/302/259 +f 377/321/282 373/329/290 374/295/249 378/301/257 +f 352/326/287 371/325/286 372/294/247 351/345/233 +f 375/323/284 369/331/292 370/293/245 376/296/251 +f 373/329/290 367/333/294 368/292/243 374/295/249 +f 371/325/286 365/335/296 366/291/241 372/294/247 +f 369/331/292 363/337/298 364/290/239 370/293/245 +f 367/333/294 361/339/300 362/289/237 368/292/243 +f 365/335/296 359/298/253 360/288/235 366/291/241 +f 363/337/298 357/341/302 358/283/226 364/290/239 +f 361/339/300 355/343/304 356/286/231 362/289/237 +f 359/298/253 353/297/252 354/285/229 360/288/235 +f 357/341/302 349/346/306 350/284/227 358/283/226 +f 355/343/304 347/348/308 348/282/223 356/286/231 +f 353/297/252 345/352/310 346/281/221 354/285/229 +f 349/346/306 352/350/287 351/287/233 350/284/227 +f 347/348/308 343/354/312 344/280/219 348/282/223 +f 345/352/310 341/356/314 342/279/217 346/281/221 +f 343/354/312 339/358/316 340/278/215 344/280/219 +f 341/356/314 337/360/318 338/277/213 342/279/217 +f 339/358/316 335/362/320 336/276/211 340/278/215 +f 337/360/318 333/310/269 334/275/209 338/277/213 +f 335/362/320 331/306/265 332/271/202 336/276/211 +f 333/310/269 329/309/268 330/236/166 334/275/209 +f 331/306/265 325/305/264 326/272/203 332/271/202 +f 329/309/268 321/364/322 322/237/167 330/236/166 +f 325/305/264 328/314/273 327/274/207 326/272/203 +f 321/364/322 324/318/277 323/273/205 322/237/167 +f 321/364/322 329/309/268 408/312/271 407/365/323 +f 290/347/324 289/351/324 385/351/324 386/347/324 +f 291/342/324 290/347/324 386/347/324 387/342/324 +f 292/338/324 291/342/324 387/342/324 388/338/324 +f 293/332/324 292/338/324 388/338/324 389/332/324 +f 294/324/324 293/332/324 389/332/324 390/324/324 +f 295/320/324 294/324/324 390/324/324 391/320/324 +f 296/316/324 295/320/324 391/320/324 392/316/324 +f 297/315/324 296/316/324 392/316/324 393/315/324 +f 298/308/324 297/315/324 393/315/324 394/308/324 +f 299/307/324 298/308/324 394/308/324 395/307/324 +f 300/363/324 299/307/324 395/307/324 396/363/324 +f 301/359/324 300/363/324 396/363/324 397/359/324 +f 302/355/324 301/359/324 397/359/324 398/355/324 +f 303/349/324 302/355/324 398/355/324 399/349/324 +f 304/344/324 303/349/324 399/349/324 400/344/324 +f 305/340/324 304/344/324 400/344/324 401/340/324 +f 306/334/324 305/340/324 401/340/324 402/334/324 +f 307/330/324 306/334/324 402/334/324 403/330/324 +f 308/366/324 307/330/324 403/330/324 404/322/324 +f 309/267/324 308/366/324 404/322/324 405/267/324 +f 310/268/324 309/267/324 405/267/324 406/268/324 +f 311/365/324 310/268/324 406/268/324 407/365/324 +f 312/312/324 311/365/324 407/365/324 408/312/324 +f 313/311/324 312/312/324 408/312/324 409/311/324 +f 314/361/324 313/311/324 409/311/324 410/361/324 +f 315/357/324 314/361/324 410/361/324 411/357/324 +f 316/353/324 315/357/324 411/357/324 412/353/324 +f 317/300/324 316/353/324 412/353/324 413/300/324 +f 318/299/324 317/300/324 413/300/324 414/299/324 +f 319/336/324 318/299/324 414/299/324 415/336/324 +f 320/328/324 319/336/324 415/336/324 416/328/324 +f 289/327/324 320/328/324 416/328/324 385/327/324 +f 417/367/324 418/368/324 419/369/324 420/370/324 421/371/324 422/372/324 423/373/324 424/374/324 425/375/324 426/376/324 427/377/324 428/378/324 429/379/324 430/380/324 431/381/324 432/382/324 433/383/324 434/384/324 435/385/324 436/386/324 437/387/324 438/388/324 439/389/324 440/390/324 441/391/324 442/392/324 443/393/324 444/394/324 445/395/324 446/396/324 447/397/324 448/398/324 +f 296/316/325 297/315/326 425/399/326 424/400/325 +f 310/268/199 311/365/327 439/401/327 438/269/199 +f 297/315/326 298/308/328 426/402/328 425/399/326 +f 311/365/327 312/312/329 440/403/329 439/401/327 +f 298/308/328 299/307/330 427/404/330 426/402/328 +f 312/312/329 313/311/331 441/405/331 440/403/329 +f 299/307/330 300/363/332 428/406/332 427/404/330 +f 313/311/331 314/361/333 442/407/333 441/405/331 +f 300/363/332 301/359/334 429/408/334 428/406/332 +f 314/361/333 315/357/335 443/409/335 442/407/333 +f 301/359/334 302/355/336 430/410/336 429/408/334 +f 315/357/335 316/353/337 444/411/337 443/409/335 +f 302/355/336 303/349/338 431/412/338 430/410/336 +f 289/351/339 290/347/340 418/413/340 417/414/339 +f 316/353/337 317/300/341 445/415/341 444/411/337 +f 303/349/338 304/344/342 432/416/342 431/412/338 +f 290/347/340 291/342/343 419/417/343 418/413/340 +f 317/300/341 318/299/344 446/418/344 445/415/341 +f 304/344/342 305/340/345 433/419/345 432/416/342 +f 291/342/343 292/338/346 420/420/346 419/417/343 +f 318/299/344 319/336/347 447/421/347 446/418/344 +f 305/340/345 306/334/348 434/422/348 433/419/345 +f 292/338/346 293/332/349 421/423/349 420/420/346 +f 319/336/347 320/328/350 448/424/350 447/421/347 +f 306/334/348 307/330/351 435/425/351 434/422/348 +f 293/332/349 294/324/352 422/426/352 421/423/349 +f 320/328/350 289/327/339 417/427/339 448/424/350 +f 307/330/351 308/366/353 436/428/353 435/425/351 +f 294/324/352 295/320/354 423/429/354 422/426/352 +f 308/366/353 309/267/198 437/270/198 436/428/353 +f 295/320/354 296/316/325 424/400/325 423/429/354 +f 449/430/163 450/431/163 480/432/163 479/433/163 478/434/163 477/435/163 476/436/163 475/437/163 474/438/163 473/439/163 472/440/163 471/441/163 470/442/163 469/443/163 468/444/163 467/445/163 466/446/163 465/447/163 464/448/163 463/449/163 462/450/163 461/451/163 460/452/163 459/453/163 458/454/163 457/455/163 456/456/163 455/457/163 454/458/163 453/459/163 452/460/163 451/461/163 +f 232/204/16 231/203/14 455/203/14 456/204/16 +f 246/205/44 245/107/42 469/107/42 470/205/44 +f 233/206/18 232/204/16 456/204/16 457/206/18 +f 247/207/46 246/205/44 470/205/44 471/207/46 +f 234/208/20 233/206/18 457/206/18 458/208/20 +f 248/209/48 247/207/46 471/207/46 472/209/48 +f 235/210/22 234/208/20 458/208/20 459/210/22 +f 249/211/50 248/209/48 472/209/48 473/211/50 +f 236/212/24 235/210/22 459/210/22 460/212/24 +f 250/213/52 249/211/50 473/211/50 474/213/52 +f 237/214/26 236/212/24 460/212/24 461/214/26 +f 251/215/54 250/213/52 474/213/52 475/215/54 +f 238/216/28 237/214/26 461/214/26 462/216/28 +f 252/217/56 251/215/54 475/215/54 476/217/56 +f 239/218/30 238/216/28 462/216/28 463/218/30 +f 225/220/4 226/219/1 450/219/1 449/220/4 +f 253/221/58 252/217/56 476/217/56 477/221/58 +f 240/222/32 239/218/30 463/218/30 464/222/32 +f 227/223/6 225/220/4 449/220/4 451/223/6 +f 254/224/60 253/221/58 477/221/58 478/224/60 +f 241/225/34 240/222/32 464/222/32 465/225/34 +f 228/226/8 227/223/6 451/223/6 452/226/8 +f 255/227/62 254/224/60 478/224/60 479/227/62 +f 242/228/36 241/225/34 465/225/34 466/228/36 +f 229/229/10 228/226/8 452/226/8 453/229/10 +f 256/230/66 255/227/62 479/227/62 480/230/66 +f 243/231/38 242/228/36 466/228/36 467/231/38 +f 230/232/12 229/229/10 453/229/10 454/232/12 +f 226/233/1 256/230/66 480/230/66 450/233/1 +f 244/106/40 243/231/38 467/231/38 468/106/40 +f 231/203/14 230/232/12 454/232/12 455/203/14 diff --git a/assets/textures/tescoPiwoNormal.png b/assets/textures/tescoPiwoNormal.png new file mode 100644 index 0000000..1192b94 Binary files /dev/null and b/assets/textures/tescoPiwoNormal.png differ diff --git a/assets/textures/tescoPiwoTexture.png b/assets/textures/tescoPiwoTexture.png new file mode 100644 index 0000000..fa252f1 Binary files /dev/null and b/assets/textures/tescoPiwoTexture.png differ diff --git a/build.zig b/build.zig index 4ebc93a..2090664 100644 --- a/build.zig +++ b/build.zig @@ -1,6 +1,6 @@ const std = @import("std"); -const sdl = @import("libs/sdl/build.zig"); -const vkgen = @import("vulkan_zig"); +const sdl = @import("sdl"); +const vkgen = @import("vulkan"); pub fn build(b: *std.Build) void { const target = b.standardTargetOptions(.{}); @@ -20,7 +20,7 @@ pub fn build(b: *std.Build) void { // --- Dependencies --- // Vulkan - const vkzig_dep = b.dependency("vulkan_zig", .{ + const vkzig_dep = b.dependency("vulkan", .{ .registry = @as([]const u8, b.pathFromRoot("./vk.xml")), }); const vkzig_bindings = vkzig_dep.module("vulkan-zig"); @@ -34,12 +34,12 @@ pub fn build(b: *std.Build) void { ); shader_comp.add("shader_frag", "src/shaders/shader.frag", .{}); shader_comp.add("shader_vert", "src/shaders/shader.vert", .{}); - shader_comp.add("shader_frag", "src/shaders/second.frag", .{}); - shader_comp.add("shader_vert", "src/shaders/second.vert", .{}); + shader_comp.add("second_frag", "src/shaders/second.frag", .{}); + shader_comp.add("second_vert", "src/shaders/second.vert", .{}); exe.root_module.addImport("shaders", shader_comp.getModule()); // SDL2 - const sdl_sdk = sdl.init(b, null, null); + const sdl_sdk = sdl.init(b, .{}); sdl_sdk.link(exe, .dynamic, sdl.Library.SDL2); exe.root_module.addImport("sdl2", sdl_sdk.getWrapperModuleVulkan(vkzig_bindings)); diff --git a/build.zig.zon b/build.zig.zon index ea4a2ff..bd0d9d0 100644 --- a/build.zig.zon +++ b/build.zig.zon @@ -6,9 +6,10 @@ .dependencies = .{ .zmath = .{ .path = "libs/zmath" }, .zstbi = .{ .path = "libs/zstbi" }, - .vulkan_zig = .{ - .url = "https://github.com/Snektron/vulkan-zig/archive/18f38ef2b7ae394734bd8b28d43f120f2b9567c1.tar.gz", - .hash = "1220530d62adb3f7ab87bacde31c302955a5803db52e302a0c7f8e107ca03f7aeca5", + .sdl = .{ .path = "libs/sdl" }, + .vulkan = .{ + .url = "https://github.com/Snektron/vulkan-zig/archive/f7b21d034f527765f62935de1b62855033621989.tar.gz", + .hash = "12201e484e173e70634e664864763223427703e677f28c63ebec9332513c8ca5121c", }, .obj = .{ .url = "https://github.com/chip2n/zig-obj/archive/58f524ed6834790b29ac1e97b2f9e6b7de7b5346.tar.gz", diff --git a/libs/sdl b/libs/sdl index 9663dc7..172a84e 160000 --- a/libs/sdl +++ b/libs/sdl @@ -1 +1 @@ -Subproject commit 9663dc70c19b13afcb4b9f596c928d7b2838e548 +Subproject commit 172a84e7b5ce7d4891b8b970c68f4532f96aa7e9 diff --git a/libs/zmath/src/zmath.zig b/libs/zmath/src/zmath.zig index e38eebf..782a3d1 100644 --- a/libs/zmath/src/zmath.zig +++ b/libs/zmath/src/zmath.zig @@ -329,7 +329,7 @@ pub inline fn boolx16( // zig fmt: on pub inline fn veclen(comptime T: type) comptime_int { - return @typeInfo(T).Vector.len; + return @typeInfo(T).vector.len; } pub inline fn splat(comptime T: type, value: f32) T { @@ -413,14 +413,14 @@ pub inline fn storeArr4(arr: *[4]f32, v: F32x4) void { } pub inline fn arr3Ptr(ptr: anytype) *const [3]f32 { - comptime assert(@typeInfo(@TypeOf(ptr)) == .Pointer); + comptime assert(@typeInfo(@TypeOf(ptr)) == .pointer); const T = std.meta.Child(@TypeOf(ptr)); comptime assert(T == F32x4); return @as(*const [3]f32, @ptrCast(ptr)); } pub inline fn arrNPtr(ptr: anytype) [*]const f32 { - comptime assert(@typeInfo(@TypeOf(ptr)) == .Pointer); + comptime assert(@typeInfo(@TypeOf(ptr)) == .pointer); const T = std.meta.Child(@TypeOf(ptr)); comptime assert(T == Mat or T == F32x4 or T == F32x8 or T == F32x16); return @as([*]const f32, @ptrCast(ptr)); diff --git a/src/main.zig b/src/main.zig index 5937000..9855338 100644 --- a/src/main.zig +++ b/src/main.zig @@ -71,7 +71,7 @@ pub fn main() !void { var angle: f32 = 0.0; const move_speed: f32 = 1000; - const model_handle = try vulkan_renderer.createMeshModel("teapot.obj"); + const model_handle = try vulkan_renderer.createMeshModel("tescoPiwo.obj"); mainLoop: while (true) { while (sdl.pollEvent()) |ev| { diff --git a/src/shaders/second.frag b/src/shaders/second.frag index 49c4100..7c98a5c 100644 --- a/src/shaders/second.frag +++ b/src/shaders/second.frag @@ -2,12 +2,21 @@ // Colour output from subpass 1 layout(input_attachment_index = 0, binding = 0) uniform subpassInput inputColour; - // Depth output from subpass 1 layout(input_attachment_index = 1, binding = 1) uniform subpassInput inputDepth; layout(location = 0) out vec4 colour; void main() { - colour = subpassLoad(inputColour).rgba; + int xHalf = 800 / 2; + if (gl_FragCoord.x > xHalf) { + float lowerBound = 0.98; + float upperBound = 1; + + float depth = subpassLoad(inputDepth).r; + float depthColourScaled = 1.0f - ((depth - lowerBound) / (upperBound - lowerBound)); + colour = vec4(subpassLoad(inputColour).rgb * depthColourScaled, 1.0f); + } else { + colour = subpassLoad(inputColour).rgba; + } } diff --git a/src/shaders/second.vert b/src/shaders/second.vert index 2f30881..e9b3199 100644 --- a/src/shaders/second.vert +++ b/src/shaders/second.vert @@ -4,7 +4,7 @@ vec2 positions[3] = vec2[]( vec2(3.0, -1.0), vec2(-1.0, -1.0), - vec2(-1.0, 3.0), + vec2(-1.0, 3.0) ); void main() { diff --git a/src/vulkan_renderer.zig b/src/vulkan_renderer.zig index 6409fd4..75eabd9 100644 --- a/src/vulkan_renderer.zig +++ b/src/vulkan_renderer.zig @@ -101,7 +101,7 @@ pub const VulkanRenderer = struct { input_descriptor_pool: vk.DescriptorPool, descriptor_sets: []vk.DescriptorSet, sampler_descriptor_sets: std.ArrayList(vk.DescriptorSet), - input_descriptor_sets: std.ArrayList(vk.DescriptorSet), + input_descriptor_sets: []vk.DescriptorSet, vp_uniform_buffer: []vk.Buffer, vp_uniform_buffer_memory: []vk.DeviceMemory, @@ -167,7 +167,6 @@ pub const VulkanRenderer = struct { try self.createCommandPool(); self.sampler_descriptor_sets = try std.ArrayList(vk.DescriptorSet).initCapacity(self.allocator, self.swapchain_images.len); - self.input_descriptor_sets = try std.ArrayList(vk.DescriptorSet).initCapacity(self.allocator, self.swapchain_images.len); try self.createCommandBuffers(); try self.createTextureSampler(); @@ -330,6 +329,7 @@ pub const VulkanRenderer = struct { self.device.destroyDescriptorSetLayout(self.sampler_set_layout, null); self.device.destroyDescriptorSetLayout(self.input_set_layout, null); self.sampler_descriptor_sets.deinit(); + self.allocator.free(self.input_descriptor_sets); for (0..self.swapchain_images.len) |i| { self.device.destroyBuffer(self.vp_uniform_buffer[i], null); @@ -354,6 +354,8 @@ pub const VulkanRenderer = struct { self.allocator.free(self.swapchain_framebuffers); + self.device.destroyPipeline(self.second_pipeline, null); + self.device.destroyPipelineLayout(self.second_pipeline_layout, null); self.device.destroyPipeline(self.graphics_pipeline, null); self.device.destroyPipelineLayout(self.pipeline_layout, null); self.device.destroyRenderPass(self.render_pass, null); @@ -556,7 +558,7 @@ pub const VulkanRenderer = struct { fn createRenderPass(self: *Self) !void { // -- Attachments -- - const subpasses: [2]vk.SubpassDescription = undefined; + var subpasses: [2]vk.SubpassDescription = undefined; // Subpass 1 attachments and references (input attachments) @@ -569,7 +571,7 @@ pub const VulkanRenderer = struct { .{ .color_attachment_bit = true }, ); const colour_attachment: vk.AttachmentDescription = .{ - .format = colour_format, + .format = colour_format.?, .samples = .{ .@"1_bit" = true }, .load_op = .clear, .store_op = .dont_care, @@ -657,7 +659,7 @@ pub const VulkanRenderer = struct { // Need to determine when layout transitions occur using subpass dependencies const subpass_dependencies = [_]vk.SubpassDependency{ // Conversion from VK_IMAGE_LAYOUT_UNDEFINED to VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL - vk.SubpassDependency{ + .{ // Transition must happen after... .src_subpass = vk.SUBPASS_EXTERNAL, // Subpass index (VK_SUBPASS_EXTERNAL = outside of renderpass) .src_stage_mask = .{ .bottom_of_pipe_bit = true }, // Pipeline stage @@ -677,7 +679,7 @@ pub const VulkanRenderer = struct { .dst_access_mask = .{ .shader_read_bit = true }, }, // Conversion from VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL to VK_IMAGE_LAYOUT_PRESENT_SRC_KHR - vk.SubpassDependency{ + .{ // Transition must happen after... .src_subpass = 0, .src_stage_mask = .{ .color_attachment_output_bit = true }, @@ -840,7 +842,7 @@ pub const VulkanRenderer = struct { self.extent.height, self.depth_format, .optimal, - .{ .depth_stencil_attachment_bit = true }, + .{ .depth_stencil_attachment_bit = true, .input_attachment_bit = true }, .{ .device_local_bit = true }, &self.depth_buffer_image_memory[i], ); @@ -867,14 +869,14 @@ pub const VulkanRenderer = struct { // -- Shader stage creation information -- // Vertex stage creation information - const vertex_shader_create_info: vk.PipelineShaderStageCreateInfo = .{ + var vertex_shader_create_info: vk.PipelineShaderStageCreateInfo = .{ .stage = .{ .vertex_bit = true }, .module = vert, .p_name = "main", }; // Fragment stage creation information - const fragment_shader_create_info: vk.PipelineShaderStageCreateInfo = .{ + var fragment_shader_create_info: vk.PipelineShaderStageCreateInfo = .{ .stage = .{ .fragment_bit = true }, .module = frag, .p_name = "main", @@ -920,7 +922,7 @@ pub const VulkanRenderer = struct { }; // -- Vertex input -- - const vertex_input_create_info: vk.PipelineVertexInputStateCreateInfo = .{ + var vertex_input_create_info: vk.PipelineVertexInputStateCreateInfo = .{ .vertex_binding_description_count = 1, .p_vertex_binding_descriptions = @ptrCast(&binding_description), // List of vertex binding descriptions (data spacing, stride info) .vertex_attribute_description_count = @intCast(attribute_descriptions.len), @@ -1026,7 +1028,7 @@ pub const VulkanRenderer = struct { self.pipeline_layout = try self.device.createPipelineLayout(&pipeline_layout_create_info, null); // -- Depth stencil testing -- - const depth_stencil_create_info: vk.PipelineDepthStencilStateCreateInfo = .{ + var depth_stencil_create_info: vk.PipelineDepthStencilStateCreateInfo = .{ .depth_test_enable = vk.TRUE, // Enable checking depth to determine fragment write .depth_write_enable = vk.TRUE, // Enable writing to depth buffer to replace all values .depth_compare_op = .less, // Comparison operation that allows an overwrite (is in front) @@ -1039,7 +1041,7 @@ pub const VulkanRenderer = struct { }; // -- Graphics pipeline creation -- - const pipeline_create_info: vk.GraphicsPipelineCreateInfo = .{ + var pipeline_create_info: vk.GraphicsPipelineCreateInfo = .{ .stage_count = @intCast(shader_create_infos.len), // Number of shader stages .p_stages = &shader_create_infos, // List of shader stages .p_vertex_input_state = &vertex_input_create_info, @@ -1070,13 +1072,13 @@ pub const VulkanRenderer = struct { // Second pass shaders const second_vert_shader_module = try self.device.createShaderModule(&.{ .code_size = shaders.second_vert.len, - .p_code = @ptrCast(&shaders.shader_vert), + .p_code = @ptrCast(&shaders.second_vert), }, null); defer self.device.destroyShaderModule(second_vert_shader_module, null); const second_frag_shader_module = try self.device.createShaderModule(&.{ .code_size = shaders.second_frag.len, - .p_code = @ptrCast(&shaders.shader_frag), + .p_code = @ptrCast(&shaders.second_frag), }, null); defer self.device.destroyShaderModule(second_frag_shader_module, null); @@ -1084,7 +1086,7 @@ pub const VulkanRenderer = struct { vertex_shader_create_info.module = second_vert_shader_module; fragment_shader_create_info.module = second_frag_shader_module; - const second_shader_stages = []vk.PipelineShaderStageCreateInfo{ vertex_shader_create_info, fragment_shader_create_info }; + const second_shader_stages = [_]vk.PipelineShaderStageCreateInfo{ vertex_shader_create_info, fragment_shader_create_info }; // No vertex data for second pass vertex_input_create_info.vertex_binding_description_count = 0; @@ -1098,7 +1100,7 @@ pub const VulkanRenderer = struct { // Create new pipeline layout const second_pipeline_layout_create_info: vk.PipelineLayoutCreateInfo = .{ .set_layout_count = 1, - .p_set_layouts = @ptrCast(self.input_set_layout), + .p_set_layouts = @ptrCast(&self.input_set_layout), }; self.second_pipeline_layout = try self.device.createPipelineLayout(&second_pipeline_layout_create_info, null); @@ -1107,6 +1109,15 @@ pub const VulkanRenderer = struct { pipeline_create_info.p_stages = &second_shader_stages; pipeline_create_info.layout = self.second_pipeline_layout; pipeline_create_info.subpass = 1; + + // Create second pipeline + _ = try self.device.createGraphicsPipelines( + .null_handle, + 1, + @ptrCast(&pipeline_create_info), + null, + @ptrCast(&self.second_pipeline), + ); } fn createFramebuffers(self: *Self) !void { @@ -1282,7 +1293,7 @@ pub const VulkanRenderer = struct { // Create input attachment pool const input_pool_create_info: vk.DescriptorPoolCreateInfo = .{ - .max_sets = self.swapchain_images.len, + .max_sets = @intCast(self.swapchain_images.len), .pool_size_count = @intCast(input_pool_sizes.len), .p_pool_sizes = &input_pool_sizes, }; @@ -1341,6 +1352,8 @@ pub const VulkanRenderer = struct { } fn createInputDescriptorSets(self: *Self) !void { + self.input_descriptor_sets = try self.allocator.alloc(vk.DescriptorSet, self.swapchain_images.len); + // Fill array of layouts ready for set creation var set_layouts = try self.allocator.alloc(vk.DescriptorSetLayout, self.swapchain_images.len); defer self.allocator.free(set_layouts); @@ -1352,46 +1365,50 @@ pub const VulkanRenderer = struct { const set_alloc_info: vk.DescriptorSetAllocateInfo = .{ .descriptor_pool = self.input_descriptor_pool, .descriptor_set_count = @intCast(self.swapchain_images.len), - .p_set_layouts = &set_layouts, + .p_set_layouts = set_layouts.ptr, }; // Allocate descriptor sets - try self.device.allocateDescriptorSets(&set_alloc_info, self.input_descriptor_sets.items.ptr); + try self.device.allocateDescriptorSets(&set_alloc_info, self.input_descriptor_sets.ptr); // Update each descriptor set with input attachment for (0..self.swapchain_images.len) |i| { // Colour attachment descriptor const colour_attachment_descriptor: vk.DescriptorImageInfo = .{ - .image_layout = .read_only_optimal, + .image_layout = .shader_read_only_optimal, .image_view = self.colour_buffer_image_view[i], .sampler = .null_handle, }; // Colour attachment descriptor write const colour_write: vk.WriteDescriptorSet = .{ - .dst_set = self.input_descriptor_sets.items[i], + .dst_set = self.input_descriptor_sets[i], .dst_binding = 0, .dst_array_element = 0, .descriptor_type = .input_attachment, .descriptor_count = 1, .p_image_info = @ptrCast(&colour_attachment_descriptor), + .p_buffer_info = undefined, + .p_texel_buffer_view = undefined, }; // Depth attachment descriptor const depth_attachment_descriptor: vk.DescriptorImageInfo = .{ - .image_layout = .read_only_optimal, + .image_layout = .shader_read_only_optimal, .image_view = self.depth_buffer_image_view[i], .sampler = .null_handle, }; // Depth attachment descriptor write const depth_write: vk.WriteDescriptorSet = .{ - .dst_set = self.input_descriptor_sets.items[i], + .dst_set = self.input_descriptor_sets[i], .dst_binding = 1, .dst_array_element = 0, .descriptor_type = .input_attachment, .descriptor_count = 1, .p_image_info = @ptrCast(&depth_attachment_descriptor), + .p_buffer_info = undefined, + .p_texel_buffer_view = undefined, }; // List of input descriptor set writes @@ -1424,7 +1441,8 @@ pub const VulkanRenderer = struct { }; const clear_values = [_]vk.ClearValue{ - .{ .color = .{ .float_32 = [4]f32{ 0.6, 0.65, 0.4, 1.0 } } }, + .{ .color = .{ .float_32 = .{ 0.0, 0.0, 0.0, 0.0 } } }, + .{ .color = .{ .float_32 = .{ 0.6, 0.65, 0.4, 1.0 } } }, .{ .depth_stencil = .{ .depth = 1.0, .stencil = 1 } }, }; @@ -1498,6 +1516,21 @@ pub const VulkanRenderer = struct { } } + // Start second subpass + command_buffer.nextSubpass(.@"inline"); + + command_buffer.bindPipeline(.graphics, self.second_pipeline); + command_buffer.bindDescriptorSets( + .graphics, + self.second_pipeline_layout, + 0, + 1, + @ptrCast(&self.input_descriptor_sets[current_image]), + 0, + null, + ); + command_buffer.draw(3, 1, 0, 0); + // End render pass command_buffer.endRenderPass(); }