basilisk-engine 0.1.36__tar.gz → 0.1.38__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of basilisk-engine might be problematic. Click here for more details.

Files changed (168) hide show
  1. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/PKG-INFO +1 -1
  2. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/draw/draw_handler.py +5 -2
  3. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/particles/particle_handler.py +1 -1
  4. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/particles/particle_renderer.py +1 -0
  5. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/render/frame.py +8 -5
  6. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/render/post_process.py +18 -11
  7. basilisk_engine-0.1.38/basilisk/render/tempCodeRunnerFile.py +1 -0
  8. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/scene.py +2 -1
  9. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/shaders/geometry.frag +2 -0
  10. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/shaders/normal.frag +3 -0
  11. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/shaders/particle.frag +6 -1
  12. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/shaders/particle.vert +4 -2
  13. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk_engine.egg-info/PKG-INFO +1 -1
  14. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk_engine.egg-info/SOURCES.txt +1 -0
  15. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/setup.py +1 -1
  16. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/MANIFEST.in +0 -0
  17. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/README.md +0 -0
  18. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/__init__.py +0 -0
  19. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/audio/__init__.py +0 -0
  20. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/audio/sound.py +0 -0
  21. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/bsk_assets/Roboto-Regular.ttf +0 -0
  22. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/bsk_assets/__init__.py +0 -0
  23. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/bsk_assets/basilisk.png +0 -0
  24. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/bsk_assets/cube.obj +0 -0
  25. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/bsk_assets/skybox.png +0 -0
  26. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/collisions/__init__.py +0 -0
  27. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/collisions/broad/__init__.py +0 -0
  28. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/collisions/broad/broad_aabb.py +0 -0
  29. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/collisions/broad/broad_bvh.py +0 -0
  30. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/collisions/collider.py +0 -0
  31. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/collisions/collider_handler.py +0 -0
  32. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/collisions/narrow/__init__.py +0 -0
  33. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/collisions/narrow/contact_manifold.py +0 -0
  34. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/collisions/narrow/dataclasses.py +0 -0
  35. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/collisions/narrow/deprecated.py +0 -0
  36. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/collisions/narrow/epa.py +0 -0
  37. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/collisions/narrow/gjk.py +0 -0
  38. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/collisions/narrow/graham_scan.py +0 -0
  39. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/collisions/narrow/helper.py +0 -0
  40. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/collisions/narrow/line_intersections.py +0 -0
  41. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/collisions/narrow/sutherland_hodgman.py +0 -0
  42. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/config.py +0 -0
  43. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/draw/__init__.py +0 -0
  44. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/draw/draw.py +0 -0
  45. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/draw/font_renderer.py +0 -0
  46. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/engine.py +0 -0
  47. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/generic/__init__.py +0 -0
  48. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/generic/abstract_bvh.py +0 -0
  49. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/generic/abstract_custom.py +0 -0
  50. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/generic/collisions.py +0 -0
  51. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/generic/input_validation.py +0 -0
  52. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/generic/math.py +0 -0
  53. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/generic/matrices.py +0 -0
  54. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/generic/meshes.py +0 -0
  55. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/generic/quat.py +0 -0
  56. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/generic/quat_methods.py +0 -0
  57. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/generic/raycast_result.py +0 -0
  58. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/generic/vec3.py +0 -0
  59. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/input_output/IO_handler.py +0 -0
  60. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/input_output/__init__.py +0 -0
  61. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/input_output/clock.py +0 -0
  62. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/input_output/keys.py +0 -0
  63. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/input_output/mouse.py +0 -0
  64. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/input_output/path.py +0 -0
  65. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/mesh/__init__.py +0 -0
  66. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/mesh/cube.py +0 -0
  67. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/mesh/mesh.py +0 -0
  68. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/mesh/mesh_from_data.py +0 -0
  69. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/mesh/model.py +0 -0
  70. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/mesh/narrow_aabb.py +0 -0
  71. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/mesh/narrow_bvh.py +0 -0
  72. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/mesh/narrow_primative.py +0 -0
  73. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/nodes/__init__.py +0 -0
  74. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/nodes/helper.py +0 -0
  75. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/nodes/node.py +0 -0
  76. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/nodes/node_handler.py +0 -0
  77. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/particles/__init__.py +0 -0
  78. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/physics/__init__.py +0 -0
  79. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/physics/impulse.py +0 -0
  80. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/physics/physics_body.py +0 -0
  81. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/physics/physics_engine.py +0 -0
  82. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/render/__init__.py +0 -0
  83. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/render/batch.py +0 -0
  84. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/render/bloom.py +0 -0
  85. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/render/camera.py +0 -0
  86. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/render/chunk.py +0 -0
  87. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/render/chunk_handler.py +0 -0
  88. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/render/framebuffer.py +0 -0
  89. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/render/image.py +0 -0
  90. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/render/image_handler.py +0 -0
  91. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/render/light.py +0 -0
  92. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/render/light_handler.py +0 -0
  93. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/render/material.py +0 -0
  94. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/render/material_handler.py +0 -0
  95. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/render/shader.py +0 -0
  96. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/render/shader_handler.py +0 -0
  97. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/render/sky.py +0 -0
  98. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/shaders/__init__.py +0 -0
  99. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/shaders/batch.frag +0 -0
  100. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/shaders/batch.vert +0 -0
  101. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/shaders/bloom_downsample.frag +0 -0
  102. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/shaders/bloom_frame.frag +0 -0
  103. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/shaders/bloom_upsample.frag +0 -0
  104. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/shaders/crt.frag +0 -0
  105. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/shaders/draw.frag +0 -0
  106. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/shaders/draw.vert +0 -0
  107. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/shaders/filter.frag +0 -0
  108. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/shaders/frame.frag +0 -0
  109. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/shaders/frame.vert +0 -0
  110. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/shaders/geometry.vert +0 -0
  111. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/shaders/normal.vert +0 -0
  112. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/shaders/sky.frag +0 -0
  113. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk/shaders/sky.vert +0 -0
  114. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk_engine.egg-info/dependency_links.txt +0 -0
  115. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk_engine.egg-info/requires.txt +0 -0
  116. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/basilisk_engine.egg-info/top_level.txt +0 -0
  117. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/docs/images/0_boilerplate.png +0 -0
  118. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/images/cloth.png +0 -0
  119. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/images/floor.png +0 -0
  120. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/images/foil.png +0 -0
  121. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/images/mud.png +0 -0
  122. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/setup.cfg +0 -0
  123. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/tests/SkySkybox.png +0 -0
  124. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/tests/box_three.obj +0 -0
  125. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/tests/box_three_lid.obj +0 -0
  126. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/tests/brick.png +0 -0
  127. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/tests/brick_normal.png +0 -0
  128. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/tests/bunny.obj +0 -0
  129. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/tests/closet_001.obj +0 -0
  130. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/tests/cloth_albedo.png +0 -0
  131. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/tests/cloth_normal.png +0 -0
  132. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/tests/cube.obj +0 -0
  133. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/tests/cubemaps_skybox.png +0 -0
  134. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/tests/cylinder.obj +0 -0
  135. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/tests/demo_sphere.obj +0 -0
  136. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/tests/dirt.png +0 -0
  137. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/tests/drawer.obj +0 -0
  138. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/tests/dresser.obj +0 -0
  139. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/tests/floor_albedo.png +0 -0
  140. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/tests/floor_normal.png +0 -0
  141. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/tests/foil_normal.png +0 -0
  142. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/tests/fridge_001.obj +0 -0
  143. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/tests/grass.jpg +0 -0
  144. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/tests/grass_ao.jpg +0 -0
  145. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/tests/grass_block_side.png +0 -0
  146. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/tests/grass_block_top.png +0 -0
  147. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/tests/grass_normal.png +0 -0
  148. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/tests/grass_roughness.jpg +0 -0
  149. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/tests/image.png +0 -0
  150. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/tests/john.obj +0 -0
  151. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/tests/key.obj +0 -0
  152. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/tests/lucy.obj +0 -0
  153. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/tests/monkey.obj +0 -0
  154. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/tests/mud.png +0 -0
  155. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/tests/mud_normal.png +0 -0
  156. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/tests/oak_tree.obj +0 -0
  157. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/tests/picture_frame.obj +0 -0
  158. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/tests/shaders/custom_format.frag +0 -0
  159. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/tests/shaders/custom_format.vert +0 -0
  160. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/tests/shaders/image_test.frag +0 -0
  161. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/tests/shaders/image_test.vert +0 -0
  162. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/tests/shaders/multi_render_test.frag +0 -0
  163. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/tests/shaders/multi_render_test.vert +0 -0
  164. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/tests/skybox.png +0 -0
  165. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/tests/sock.obj +0 -0
  166. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/tests/sphere.obj +0 -0
  167. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/tests/wedge.obj +0 -0
  168. {basilisk_engine-0.1.36 → basilisk_engine-0.1.38}/tests/wheel_eight.obj +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: basilisk-engine
3
- Version: 0.1.36
3
+ Version: 0.1.38
4
4
  Summary: Python 3D Framework
5
5
  Home-page: https://basilisk-website.vercel.app/
6
6
  Author: Name
@@ -43,6 +43,9 @@ class DrawHandler():
43
43
 
44
44
  if not self.draw_data: return
45
45
 
46
+ self.ctx.enable(mgl.BLEND)
47
+ self.ctx.blend_func = mgl.ADDITIVE_BLENDING
48
+
46
49
  # Reverse the draw order, and convert to C-like array
47
50
  self.draw_data.reverse()
48
51
  data = np.array(self.draw_data, dtype='f4')
@@ -54,8 +57,6 @@ class DrawHandler():
54
57
  self.vao = self.ctx.vertex_array(self.shader.program, [(self.vbo, '2f 4f 1i 1f', *['in_position', 'in_color', 'in_uses_image', 'in_alpha'])], skip_errors=True)
55
58
 
56
59
  # Render the VAO
57
- self.ctx.enable(mgl.BLEND)
58
- self.ctx.blend_equation = mgl.ADDITIVE_BLENDING
59
60
  self.vao.render()
60
61
 
61
62
  # Clera the draw data
@@ -65,6 +66,8 @@ class DrawHandler():
65
66
  self.vao = None
66
67
  self.draw_data.clear()
67
68
 
69
+ self.ctx.disable(mgl.BLEND)
70
+
68
71
  def draw_rect(self, color: tuple, rect: tuple) -> None:
69
72
  """
70
73
  Draws a rect to the screen
@@ -42,7 +42,7 @@ class ParticleHandler:
42
42
 
43
43
  # Get material ID
44
44
  if material == None: material_index = 0
45
- elif isinstance(material, Material):
45
+ elif isinstance(material, Material):
46
46
  self.scene.engine.material_handler.add(material)
47
47
  material_index = material.index
48
48
  else: raise ValueError(f'particle_handler.add: Invalid particle material type: {type(material)}')
@@ -31,6 +31,7 @@ class ParticleRenderer:
31
31
  root = scene.engine.root
32
32
  if shader: self.shader = shader
33
33
  else: self.shader = Shader(scene.engine, vert=root + '/shaders/particle.vert', frag=root + '/shaders/particle.frag')
34
+
34
35
  scene.engine.shader_handler.add(self.shader)
35
36
 
36
37
  self.particle_cube_size = 25
@@ -28,9 +28,6 @@ class Frame:
28
28
  self.framebuffer.texture.repeat_x = False
29
29
  self.framebuffer.texture.repeat_y = False
30
30
 
31
- self.ctx.enable(mgl.BLEND)
32
- self.ctx.blend_func = mgl.ADDITIVE_BLENDING
33
-
34
31
  # Load Shaders
35
32
  self.shader = Shader(self.engine, self.engine.root + '/shaders/frame.vert', self.engine.root + '/shaders/bloom_frame.frag')
36
33
  self.engine.shader_handler.add(self.shader)
@@ -50,21 +47,27 @@ class Frame:
50
47
  Renders the current frame to the screen
51
48
  """
52
49
 
50
+ self.ctx.enable(mgl.BLEND)
51
+ self.ctx.blend_func = mgl.ADDITIVE_BLENDING
52
+
53
53
  if self.engine.event_resize: self.bloom.generate_bloom_buffers()
54
54
 
55
+ self.bloom.render()
56
+
55
57
  for process in self.post_processes:
56
- self.ping_pong_buffer = process.apply(self.framebuffer, self.ping_pong_buffer)
58
+ self.ping_pong_buffer = process.apply([('screenTexture', self.framebuffer)], self.ping_pong_buffer)
57
59
 
58
60
  temp = self.framebuffer
59
61
  self.framebuffer = self.ping_pong_buffer
60
62
  self.ping_pong_buffer = temp
61
63
 
62
- self.bloom.render()
63
64
  self.ctx.screen.use()
64
65
  self.shader.bind(self.framebuffer.texture, 'screenTexture', 0)
65
66
  self.shader.bind(self.bloom.texture, 'bloomTexture', 1)
66
67
  self.vao.render()
67
68
 
69
+ self.ctx.disable(mgl.BLEND)
70
+
68
71
  def use(self) -> None:
69
72
  """
70
73
  Uses the frame as a render target
@@ -35,7 +35,7 @@ class PostProcess:
35
35
 
36
36
  # Load Shaders
37
37
  self.shader = Shader(self.engine, self.engine.root + f'/shaders/frame.vert', frag)
38
- self.engine.scene.shader_handler.add(self.shader)
38
+ self.engine.shader_handler.add(self.shader)
39
39
 
40
40
  # Load VAO
41
41
  self.vbo = self.ctx.buffer(np.array([[-1, -1, 0, 0, 0], [1, -1, 0, 1, 0], [1, 1, 0, 1, 1], [-1, 1, 0, 0, 1], [-1, -1, 0, 0, 0], [1, 1, 0, 1, 1]], dtype='f4'))
@@ -49,15 +49,15 @@ class PostProcess:
49
49
  self.fbo.texture.filter = self.filter
50
50
 
51
51
 
52
- def apply(self, source: mgl.Texture | Image | Framebuffer, destination: mgl.Texture | Image | Framebuffer=None) -> mgl.Texture | Image | Framebuffer:
52
+ def apply(self, source: list[tuple[str, mgl.Texture]] | list[tuple[str, Image]] | list[tuple[str, Framebuffer]], destination: mgl.Texture | Image | Framebuffer=None) -> mgl.Texture | Image | Framebuffer:
53
53
  """
54
54
  Applies a post process shader to a texture source.
55
55
  Returns the modified texture or renders to the destination if given
56
56
  """
57
57
 
58
- if isinstance(source, Framebuffer): return self._apply_to_framebuffer(source, destination)
59
- elif isinstance(source, mgl.Texture): return self._apply_to_texture(source, destination)
60
- elif isinstance(source, Image): return self._apply_to_image(source, destination)
58
+ if isinstance(source[0][1], Framebuffer): return self._apply_to_framebuffer(source, destination)
59
+ elif isinstance(source[0][1], mgl.Texture): return self._apply_to_texture(source, destination)
60
+ elif isinstance(source[0][1], Image): return self._apply_to_image(source, destination)
61
61
 
62
62
  raise ValueError(f'PostProces.apply: Invalid postprocess source type {type(source)}')
63
63
 
@@ -74,8 +74,9 @@ class PostProcess:
74
74
  self.fbo.clear()
75
75
 
76
76
  # Load the source texture to the shader
77
- self.shader.program['screenTexture'] = 0
78
- source.use(location=0)
77
+ for i, src in enumerate(source):
78
+ self.shader.program[src[0]] = i
79
+ src[1].use(location=i)
79
80
 
80
81
  # Apply the post process
81
82
  self.vao.render()
@@ -93,12 +94,13 @@ class PostProcess:
93
94
  fbo.texture.filter = self.filter
94
95
  else:
95
96
  fbo = detination
96
- old_filter = fbo.filter
97
+ old_filter = fbo.texture_filter
97
98
  fbo.texture.filter = self.filter
98
99
 
99
100
  # Load the source texture to the shader
100
- self.shader.program['screenTexture'] = 0
101
- source.texture.use(location=0)
101
+ for i, src in enumerate(source):
102
+ self.shader.program[src[0]] = i
103
+ src[1].texture.use(location=i)
102
104
 
103
105
  fbo.use()
104
106
  fbo.clear()
@@ -137,4 +139,9 @@ class PostProcess:
137
139
 
138
140
  # Make an image from the texture
139
141
  image = Image()
140
- return image
142
+ return image
143
+
144
+ def __del__(self):
145
+ if self.vao: self.vao.release()
146
+ if self.vbo: self.vbo.release()
147
+ if self.fbo: self.fbo.release()
@@ -287,4 +287,5 @@ class Scene():
287
287
  @shader.setter
288
288
  def shader(self, value):
289
289
  self._shader = value
290
- value.set_main(self)
290
+ value.set_main(self)
291
+ if self.light_handler: self.light_handler.write(value)
@@ -1,9 +1,11 @@
1
1
  #version 330 core
2
2
 
3
3
  layout (location = 0) out vec4 fragColor;
4
+ layout (location = 1) out vec4 bloomColor;
4
5
 
5
6
 
6
7
  void main() {
7
8
  // Output fragment color
8
9
  fragColor = vec4(1.0, 1.0, 1.0, 1.0);
10
+ bloomColor = vec4(0.0);
9
11
  }
@@ -1,6 +1,7 @@
1
1
  #version 330 core
2
2
 
3
3
  layout (location = 0) out vec4 fragColor;
4
+ layout (location = 1) out vec4 bloomColor;
4
5
 
5
6
  // Structs needed for the shader
6
7
  struct textArray {
@@ -57,4 +58,6 @@ void main() {
57
58
 
58
59
  // Output fragment color
59
60
  fragColor = vec4(normal, 1.0);
61
+
62
+ bloomColor = vec4(0.0);
60
63
  }
@@ -1,5 +1,7 @@
1
1
  #version 330 core
2
- out vec4 fragColor;
2
+
3
+ layout (location = 0) out vec4 fragColor;
4
+ layout (location = 1) out vec4 bloomColor;
3
5
 
4
6
  in vec2 uv;
5
7
  in vec3 position;
@@ -12,6 +14,7 @@ uniform textArray textureArrays[5];
12
14
 
13
15
  struct Material {
14
16
  vec3 color;
17
+ vec3 emissiveColor;
15
18
  float roughness;
16
19
  float subsurface;
17
20
  float sheen;
@@ -69,4 +72,6 @@ void main()
69
72
  // Get color and gamma correction
70
73
  fragColor = vec4(color * (.2 + diff), 1.0);
71
74
  fragColor.rgb = pow(fragColor.rgb, vec3(1.0/gamma));
75
+
76
+ bloomColor = vec4(mtl.emissiveColor, 1.0);
72
77
  }
@@ -21,6 +21,7 @@ uniform sampler2D materialsTexture;
21
21
 
22
22
  struct Material {
23
23
  vec3 color;
24
+ vec3 emissiveColor;
24
25
  float roughness;
25
26
  float subsurface;
26
27
  float sheen;
@@ -71,14 +72,15 @@ void main() {
71
72
  uv = in_uv;
72
73
 
73
74
  // Material Data
74
- int mtl_size = 25;
75
+ int mtl_size = 28;
75
76
  int materialID = int(in_instance_mtl);
76
- mtl = Material(vec3(0), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, vec2(0), 0, vec2(0), 0, vec2(0), 0, vec2(0));
77
+ mtl = Material(vec3(0), vec3(0), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, vec2(0), 0, vec2(0), 0, vec2(0), 0, vec2(0));
77
78
  mtl.color = vec3(texelFetch(materialsTexture, ivec2(0, 0 + materialID * mtl_size), 0).r, texelFetch(materialsTexture, ivec2(0, 1 + materialID * mtl_size), 0).r, texelFetch(materialsTexture, ivec2(0, 2 + materialID * mtl_size), 0).r);
78
79
  mtl.hasAlbedoMap = int(texelFetch(materialsTexture, ivec2(0, 13 + materialID * mtl_size), 0).r);
79
80
  mtl.albedoMap = vec2(texelFetch(materialsTexture, ivec2(0, 14 + materialID * mtl_size), 0).r, texelFetch(materialsTexture, ivec2(0, 15 + materialID * mtl_size), 0).r);
80
81
  mtl.hasNormalMap = int(texelFetch(materialsTexture, ivec2(0, 16 + materialID * mtl_size), 0).r);
81
82
  mtl.normalMap = vec2(texelFetch(materialsTexture, ivec2(0, 17 + materialID * mtl_size), 0).r, texelFetch(materialsTexture, ivec2(0, 18 + materialID * mtl_size), 0).r);
83
+ mtl.emissiveColor = vec3(texelFetch(materialsTexture, ivec2(0, 25 + materialID * mtl_size), 0).r, texelFetch(materialsTexture, ivec2(0, 26 + materialID * mtl_size), 0).r, texelFetch(materialsTexture, ivec2(0, 27 + materialID * mtl_size), 0).r);
82
84
 
83
85
  // Send position to the frag
84
86
  gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(in_position, 1.0);
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: basilisk-engine
3
- Version: 0.1.36
3
+ Version: 0.1.38
4
4
  Summary: Python 3D Framework
5
5
  Home-page: https://basilisk-website.vercel.app/
6
6
  Author: Name
@@ -87,6 +87,7 @@ basilisk/render/post_process.py
87
87
  basilisk/render/shader.py
88
88
  basilisk/render/shader_handler.py
89
89
  basilisk/render/sky.py
90
+ basilisk/render/tempCodeRunnerFile.py
90
91
  basilisk/shaders/__init__.py
91
92
  basilisk/shaders/batch.frag
92
93
  basilisk/shaders/batch.vert
@@ -7,7 +7,7 @@ with open(path.join(working_directory, 'README.md'), encoding='utf-8') as f:
7
7
 
8
8
  setup(
9
9
  name = 'basilisk-engine', # Name of folder containing scripts and __init__
10
- version = '0.1.36',
10
+ version = '0.1.38',
11
11
  url = 'https://basilisk-website.vercel.app/',
12
12
  author = 'Name',
13
13
  author_email = 'basiliskengine@gmail.com',