mittsu 0.4.0 → 0.5.0

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.
Files changed (154) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/build-workflow.yml +5 -44
  3. data/Gemfile +0 -4
  4. data/README.md +16 -130
  5. data/bin/console +0 -4
  6. data/lib/mittsu/cameras/cube_camera.rb +1 -1
  7. data/lib/mittsu/core/geometry.rb +3 -3
  8. data/lib/mittsu/core/object_3d.rb +29 -47
  9. data/lib/mittsu/core/uniform.rb +23 -0
  10. data/lib/mittsu/core.rb +1 -0
  11. data/lib/mittsu/loaders/obj_loader.rb +11 -5
  12. data/lib/mittsu/loaders/stl_loader.rb +186 -0
  13. data/lib/mittsu/loaders.rb +1 -0
  14. data/lib/mittsu/math/box3.rb +4 -4
  15. data/lib/mittsu/objects/line.rb +1 -3
  16. data/lib/mittsu/objects/mesh.rb +9 -12
  17. data/lib/mittsu/objects/point_cloud.rb +3 -3
  18. data/lib/mittsu/textures/render_target.rb +93 -0
  19. data/lib/mittsu/textures/render_target_cube.rb +8 -0
  20. data/lib/mittsu/textures/texture.rb +1 -1
  21. data/lib/mittsu/textures.rb +2 -0
  22. data/lib/mittsu/version.rb +1 -1
  23. data/lib/mittsu.rb +0 -1
  24. data/mittsu.gemspec +8 -12
  25. metadata +33 -204
  26. data/install-glfw.ps1 +0 -13
  27. data/lib/mittsu/renderers/generic_lib.rb +0 -122
  28. data/lib/mittsu/renderers/glfw_lib.rb +0 -62
  29. data/lib/mittsu/renderers/glfw_window.rb +0 -233
  30. data/lib/mittsu/renderers/opengl/core/buffer_geometry.rb +0 -11
  31. data/lib/mittsu/renderers/opengl/core/geometry.rb +0 -346
  32. data/lib/mittsu/renderers/opengl/core/object_3d.rb +0 -134
  33. data/lib/mittsu/renderers/opengl/lights/ambient_light.rb +0 -26
  34. data/lib/mittsu/renderers/opengl/lights/directional_light.rb +0 -35
  35. data/lib/mittsu/renderers/opengl/lights/hemisphere_light.rb +0 -39
  36. data/lib/mittsu/renderers/opengl/lights/light.rb +0 -55
  37. data/lib/mittsu/renderers/opengl/lights/point_light.rb +0 -36
  38. data/lib/mittsu/renderers/opengl/lights/spot_light.rb +0 -47
  39. data/lib/mittsu/renderers/opengl/materials/line_basic_material.rb +0 -16
  40. data/lib/mittsu/renderers/opengl/materials/material.rb +0 -274
  41. data/lib/mittsu/renderers/opengl/materials/mesh_basic_material.rb +0 -21
  42. data/lib/mittsu/renderers/opengl/materials/mesh_lambert_material.rb +0 -33
  43. data/lib/mittsu/renderers/opengl/materials/mesh_phong_material.rb +0 -44
  44. data/lib/mittsu/renderers/opengl/materials/opengl_material_basics.rb +0 -57
  45. data/lib/mittsu/renderers/opengl/materials/point_cloud_material.rb +0 -27
  46. data/lib/mittsu/renderers/opengl/materials/shader_material.rb +0 -11
  47. data/lib/mittsu/renderers/opengl/objects/group.rb +0 -9
  48. data/lib/mittsu/renderers/opengl/objects/line.rb +0 -45
  49. data/lib/mittsu/renderers/opengl/objects/mesh.rb +0 -70
  50. data/lib/mittsu/renderers/opengl/objects/point_cloud.rb +0 -39
  51. data/lib/mittsu/renderers/opengl/objects/sprite.rb +0 -12
  52. data/lib/mittsu/renderers/opengl/opengl_buffer.rb +0 -13
  53. data/lib/mittsu/renderers/opengl/opengl_debug.rb +0 -81
  54. data/lib/mittsu/renderers/opengl/opengl_default_target.rb +0 -50
  55. data/lib/mittsu/renderers/opengl/opengl_geometry_group.rb +0 -758
  56. data/lib/mittsu/renderers/opengl/opengl_geometry_like.rb +0 -132
  57. data/lib/mittsu/renderers/opengl/opengl_helper.rb +0 -161
  58. data/lib/mittsu/renderers/opengl/opengl_implementations.rb +0 -37
  59. data/lib/mittsu/renderers/opengl/opengl_lib.rb +0 -19
  60. data/lib/mittsu/renderers/opengl/opengl_light_renderer.rb +0 -43
  61. data/lib/mittsu/renderers/opengl/opengl_mittsu_params.rb +0 -53
  62. data/lib/mittsu/renderers/opengl/opengl_program.rb +0 -250
  63. data/lib/mittsu/renderers/opengl/opengl_shader.rb +0 -58
  64. data/lib/mittsu/renderers/opengl/opengl_state.rb +0 -205
  65. data/lib/mittsu/renderers/opengl/plugins/shadow_map_plugin.rb +0 -417
  66. data/lib/mittsu/renderers/opengl/plugins/sprite_fragment.glsl +0 -38
  67. data/lib/mittsu/renderers/opengl/plugins/sprite_plugin.rb +0 -250
  68. data/lib/mittsu/renderers/opengl/plugins/sprite_vertex.glsl +0 -31
  69. data/lib/mittsu/renderers/opengl/scenes/scene.rb +0 -9
  70. data/lib/mittsu/renderers/opengl/textures/compressed_texture.rb +0 -20
  71. data/lib/mittsu/renderers/opengl/textures/cube_texture.rb +0 -77
  72. data/lib/mittsu/renderers/opengl/textures/data_texture.rb +0 -21
  73. data/lib/mittsu/renderers/opengl/textures/texture.rb +0 -107
  74. data/lib/mittsu/renderers/opengl_render_target.rb +0 -201
  75. data/lib/mittsu/renderers/opengl_renderer.rb +0 -1028
  76. data/lib/mittsu/renderers/shaders/rbsl_loader.rb +0 -166
  77. data/lib/mittsu/renderers/shaders/shader_chunk/alphamap_fragment.glsl +0 -5
  78. data/lib/mittsu/renderers/shaders/shader_chunk/alphamap_pars_fragment.glsl +0 -5
  79. data/lib/mittsu/renderers/shaders/shader_chunk/alphatest_fragment.glsl +0 -5
  80. data/lib/mittsu/renderers/shaders/shader_chunk/bumpmap_pars_fragment.glsl +0 -40
  81. data/lib/mittsu/renderers/shaders/shader_chunk/color_fragment.glsl +0 -5
  82. data/lib/mittsu/renderers/shaders/shader_chunk/color_pars_fragment.glsl +0 -5
  83. data/lib/mittsu/renderers/shaders/shader_chunk/color_pars_vertex.glsl +0 -5
  84. data/lib/mittsu/renderers/shaders/shader_chunk/color_vertex.glsl +0 -5
  85. data/lib/mittsu/renderers/shaders/shader_chunk/common.glsl +0 -60
  86. data/lib/mittsu/renderers/shaders/shader_chunk/default_vertex.glsl +0 -15
  87. data/lib/mittsu/renderers/shaders/shader_chunk/defaultnormal_vertex.glsl +0 -21
  88. data/lib/mittsu/renderers/shaders/shader_chunk/envmap_fragment.glsl +0 -62
  89. data/lib/mittsu/renderers/shaders/shader_chunk/envmap_pars_fragment.glsl +0 -21
  90. data/lib/mittsu/renderers/shaders/shader_chunk/envmap_pars_vertex.glsl +0 -7
  91. data/lib/mittsu/renderers/shaders/shader_chunk/envmap_vertex.glsl +0 -17
  92. data/lib/mittsu/renderers/shaders/shader_chunk/fog_fragment.glsl +0 -26
  93. data/lib/mittsu/renderers/shaders/shader_chunk/fog_pars_fragment.glsl +0 -15
  94. data/lib/mittsu/renderers/shaders/shader_chunk/lightmap_fragment.glsl +0 -5
  95. data/lib/mittsu/renderers/shaders/shader_chunk/lightmap_pars_fragment.glsl +0 -6
  96. data/lib/mittsu/renderers/shaders/shader_chunk/lightmap_pars_vertex.glsl +0 -5
  97. data/lib/mittsu/renderers/shaders/shader_chunk/lightmap_vertex.glsl +0 -5
  98. data/lib/mittsu/renderers/shaders/shader_chunk/lights_lambert_pars_vertex.glsl +0 -43
  99. data/lib/mittsu/renderers/shaders/shader_chunk/lights_lambert_vertex.glsl +0 -196
  100. data/lib/mittsu/renderers/shaders/shader_chunk/lights_phong_fragment.glsl +0 -243
  101. data/lib/mittsu/renderers/shaders/shader_chunk/lights_phong_pars_fragment.glsl +0 -58
  102. data/lib/mittsu/renderers/shaders/shader_chunk/lights_phong_pars_vertex.glsl +0 -5
  103. data/lib/mittsu/renderers/shaders/shader_chunk/lights_phong_vertex.glsl +0 -5
  104. data/lib/mittsu/renderers/shaders/shader_chunk/linear_to_gamma_fragment.glsl +0 -2
  105. data/lib/mittsu/renderers/shaders/shader_chunk/logdepthbuf_fragment.glsl +0 -5
  106. data/lib/mittsu/renderers/shaders/shader_chunk/logdepthbuf_pars_fragment.glsl +0 -12
  107. data/lib/mittsu/renderers/shaders/shader_chunk/logdepthbuf_pars_vertex.glsl +0 -11
  108. data/lib/mittsu/renderers/shaders/shader_chunk/logdepthbuf_vertex.glsl +0 -15
  109. data/lib/mittsu/renderers/shaders/shader_chunk/map_fragment.glsl +0 -9
  110. data/lib/mittsu/renderers/shaders/shader_chunk/map_pars_fragment.glsl +0 -11
  111. data/lib/mittsu/renderers/shaders/shader_chunk/map_pars_vertex.glsl +0 -6
  112. data/lib/mittsu/renderers/shaders/shader_chunk/map_particle_fragment.glsl +0 -5
  113. data/lib/mittsu/renderers/shaders/shader_chunk/map_particle_pars_fragment.glsl +0 -6
  114. data/lib/mittsu/renderers/shaders/shader_chunk/map_vertex.glsl +0 -5
  115. data/lib/mittsu/renderers/shaders/shader_chunk/morphnormal_vertex.glsl +0 -12
  116. data/lib/mittsu/renderers/shaders/shader_chunk/morphtarget_pars_vertex.glsl +0 -13
  117. data/lib/mittsu/renderers/shaders/shader_chunk/morphtarget_vertex.glsl +0 -20
  118. data/lib/mittsu/renderers/shaders/shader_chunk/normalmap_pars_fragment.glsl +0 -27
  119. data/lib/mittsu/renderers/shaders/shader_chunk/shadowmap_fragment.glsl +0 -216
  120. data/lib/mittsu/renderers/shaders/shader_chunk/shadowmap_pars_fragment.glsl +0 -19
  121. data/lib/mittsu/renderers/shaders/shader_chunk/shadowmap_pars_vertex.glsl +0 -6
  122. data/lib/mittsu/renderers/shaders/shader_chunk/shadowmap_vertex.glsl +0 -9
  123. data/lib/mittsu/renderers/shaders/shader_chunk/skinbase_vertex.glsl +0 -8
  124. data/lib/mittsu/renderers/shaders/shader_chunk/skinning_pars_vertex.glsl +0 -47
  125. data/lib/mittsu/renderers/shaders/shader_chunk/skinning_vertex.glsl +0 -20
  126. data/lib/mittsu/renderers/shaders/shader_chunk/skinnormal_vertex.glsl +0 -20
  127. data/lib/mittsu/renderers/shaders/shader_chunk/specularmap_fragment.glsl +0 -12
  128. data/lib/mittsu/renderers/shaders/shader_chunk/specularmap_pars_fragment.glsl +0 -5
  129. data/lib/mittsu/renderers/shaders/shader_chunk/worldpos_vertex.glsl +0 -17
  130. data/lib/mittsu/renderers/shaders/shader_chunk.rb +0 -9
  131. data/lib/mittsu/renderers/shaders/shader_lib/basic/basic_fragment.rbsl +0 -37
  132. data/lib/mittsu/renderers/shaders/shader_lib/basic/basic_uniforms.rbslu +0 -3
  133. data/lib/mittsu/renderers/shaders/shader_lib/basic/basic_vertex.rbsl +0 -33
  134. data/lib/mittsu/renderers/shaders/shader_lib/cube/cube_fragment.rbsl +0 -12
  135. data/lib/mittsu/renderers/shaders/shader_lib/cube/cube_uniforms.rbslu +0 -2
  136. data/lib/mittsu/renderers/shaders/shader_lib/cube/cube_vertex.rbsl +0 -12
  137. data/lib/mittsu/renderers/shaders/shader_lib/depth_rgba/depth_rgba_fragment.rbsl +0 -26
  138. data/lib/mittsu/renderers/shaders/shader_lib/depth_rgba/depth_rgba_uniforms.rbslu +0 -0
  139. data/lib/mittsu/renderers/shaders/shader_lib/depth_rgba/depth_rgba_vertex.rbsl +0 -12
  140. data/lib/mittsu/renderers/shaders/shader_lib/lambert/lambert_fragment.rbsl +0 -56
  141. data/lib/mittsu/renderers/shaders/shader_lib/lambert/lambert_uniforms.rbslu +0 -7
  142. data/lib/mittsu/renderers/shaders/shader_lib/lambert/lambert_vertex.rbsl +0 -37
  143. data/lib/mittsu/renderers/shaders/shader_lib/particle_basic/particle_basic_fragment.rbsl +0 -27
  144. data/lib/mittsu/renderers/shaders/shader_lib/particle_basic/particle_basic_uniforms.rbslu +0 -2
  145. data/lib/mittsu/renderers/shaders/shader_lib/particle_basic/particle_basic_vertex.rbsl +0 -25
  146. data/lib/mittsu/renderers/shaders/shader_lib/phong/phong_fragment.rbsl +0 -45
  147. data/lib/mittsu/renderers/shaders/shader_lib/phong/phong_uniforms.rbslu +0 -11
  148. data/lib/mittsu/renderers/shaders/shader_lib/phong/phong_vertex.rbsl +0 -43
  149. data/lib/mittsu/renderers/shaders/shader_lib.rb +0 -43
  150. data/lib/mittsu/renderers/shaders/shader_templates/fragment.glsl.erb +0 -105
  151. data/lib/mittsu/renderers/shaders/shader_templates/vertex.glsl.erb +0 -143
  152. data/lib/mittsu/renderers/shaders/uniforms_lib.rb +0 -106
  153. data/lib/mittsu/renderers/shaders/uniforms_utils.rb +0 -31
  154. data/lib/mittsu/renderers.rb +0 -1
@@ -38,18 +38,18 @@ module Mittsu
38
38
  object.traverse do |node|
39
39
  geometry = node.geometry
40
40
  if geometry != nil
41
- if geometry instanceof Mittsu::Geometry
41
+ if geometry.is_a?(Mittsu::Geometry)
42
42
  vertices = geometry.vertices
43
43
  vertices.each do |vertex|
44
44
  v1.copy(vertex)
45
- v1.apply_matrix4(node.matrixWorld)
45
+ v1.apply_matrix4(node.matrix_world)
46
46
  scope.expand_by_point(v1)
47
47
  end
48
- elsif geometry instanceof Mittsu::BufferGeometry && geometry.attributes['position'] != nil
48
+ elsif geometry.is_a?(Mittsu::BufferGeometry) && geometry.attributes['position'] != nil
49
49
  positions = geometry.attributes['position'].array
50
50
  positions.each_slice(3) do |postition|
51
51
  v1.set(position[0], position[1], position[2])
52
- v1.apply_matrix4(node.matrixWorld)
52
+ v1.apply_matrix4(node.matrix_world)
53
53
  scope.expand_by_point(v1)
54
54
  end
55
55
  end
@@ -143,9 +143,7 @@ module Mittsu
143
143
 
144
144
  def jsonify
145
145
  data = super
146
- data[:geometry] = jsonify_geometry(self.geometry)
147
- data[:material] = jsonify_material(self.material)
148
- data[:mode] = self.mode
146
+ data[:object][:mode] = self.mode
149
147
  data
150
148
  end
151
149
  end
@@ -98,7 +98,7 @@ module Mittsu
98
98
  @_ray.copy(raycaster.ray).apply_matrix4(@_inverse_matrix)
99
99
 
100
100
  if !geometry.bounding_box.nil?
101
- return unless ray.intersection_box?(geometry.bounding_box)
101
+ return unless @_ray.intersection_box?(geometry.bounding_box)
102
102
  end
103
103
 
104
104
 
@@ -132,16 +132,16 @@ module Mittsu
132
132
  v_c.from_array(positions, c * 3)
133
133
 
134
134
  if material.side == BackSide
135
- intersection_point = ray.intersect_triangle(v_c, v_b, v_a, true)
135
+ intersection_point = @_ray.intersect_triangle(v_c, v_b, v_a, true)
136
136
  else
137
- intersection_point = ray.intersect_triangle(v_a, v_b, v_c, material.side != DoubleSide)
137
+ intersection_point = @_ray.intersect_triangle(v_a, v_b, v_c, material.side != DoubleSide)
138
138
  end
139
139
 
140
140
  next if intersection_point.nil?
141
141
 
142
142
  intersection_point.apply_matrix4(@matrix_world)
143
143
 
144
- distance = racaster.ray.origin.distance_to(intersection_point)
144
+ distance = raycaster.ray.origin.distance_to(intersection_point)
145
145
 
146
146
  next if distance < precision || distance < raycaster.near || distance > raycaster.far
147
147
 
@@ -170,17 +170,17 @@ module Mittsu
170
170
  v_b.from_array(positions, j + 3)
171
171
  v_c.from_array(positions, j + 6)
172
172
 
173
- if material.side = BackSide
174
- intersection_point = ray.intersect_triangle(v_c, v_b, v_a, true)
173
+ if material.side == BackSide
174
+ intersection_point = @_ray.intersect_triangle(v_c, v_b, v_a, true)
175
175
  else
176
- intersection_point = ray.intersect_triangle(v_a, v_b, v_c, material.side != DoubleSide)
176
+ intersection_point = @_ray.intersect_triangle(v_a, v_b, v_c, material.side != DoubleSide)
177
177
  end
178
178
 
179
179
  next if intersection_point.nil?
180
180
 
181
181
  intersection_point.apply_matrix4(@matrix_world)
182
182
 
183
- distance = racaster.ray.origin.distance_to(intersection_point)
183
+ distance = raycaster.ray.origin.distance_to(intersection_point)
184
184
 
185
185
  next if distance < precision || distance < raycaster.near || distance > raycaster.far
186
186
 
@@ -269,10 +269,7 @@ module Mittsu
269
269
  protected
270
270
 
271
271
  def jsonify
272
- data = super
273
- data[:geometry] = jsonify_geometry(@geometry)
274
- data[:material] = jsonify_material(@material)
275
- data
272
+ super
276
273
  end
277
274
  end
278
275
  end
@@ -16,11 +16,11 @@ module Mittsu
16
16
 
17
17
  def raycast(raycaster, intersects)
18
18
  threshold = raycaster.params[:point_cloud][:threshold]
19
- @_inverse_matrix.inverse(self.materix_world)
19
+ @_inverse_matrix.inverse(self.matrix_world)
20
20
  @_ray.copy(raycaster.ray).apply_matrix4(@_inverse_matrix)
21
21
 
22
22
  if !geometry.bounding_box.nil?
23
- return if ray.intersection_box?(geometry.bounding_box) == false
23
+ return if @_ray.intersection_box?(geometry.bounding_box) == false
24
24
  end
25
25
 
26
26
  local_threshold = threshold / ((self.scale.x + self.scale.y + self.scale.z) / 3.0)
@@ -82,7 +82,7 @@ module Mittsu
82
82
  def test_point(point, index, local_threshold, raycaster, intersects)
83
83
  ray_point_distance = @_ray.distance_to_point(point)
84
84
  if ray_point_distance < local_threshold
85
- intersect_point = @_ray.closes_point_to_point(point)
85
+ intersect_point = @_ray.closest_point_to_point(point)
86
86
  intersect_point.apply_matrix4(self.matrix_world)
87
87
 
88
88
  distance = raycaster.ray.origin.distance_to(intersect_point)
@@ -0,0 +1,93 @@
1
+ module Mittsu
2
+ class RenderTarget < Texture
3
+ include EventDispatcher
4
+
5
+ attr_accessor :width,
6
+ :height,
7
+ :wrap_s,
8
+ :wrap_t,
9
+ :mag_filter,
10
+ :min_filter,
11
+ :anisotropy,
12
+ :offset,
13
+ :repeat,
14
+ :format,
15
+ :type,
16
+ :depth_buffer,
17
+ :stencil_buffer,
18
+ :generate_mipmaps,
19
+ :share_depth_from
20
+
21
+ attr_reader :framebuffer
22
+
23
+ attr_writer :renderer
24
+
25
+ def initialize(width, height, options = {})
26
+ super(self, nil)
27
+
28
+ @width = width
29
+ @height = height
30
+
31
+ @wrap_s = options.fetch(:wrap_s, ClampToEdgeWrapping)
32
+ @wrap_t = options.fetch(:wrap_t, ClampToEdgeWrapping)
33
+
34
+ @mag_filter = options.fetch(:mag_filter, LinearFilter)
35
+ @min_filter = options.fetch(:min_filter, LinearMipMapLinearFilter)
36
+
37
+ @anisotropy = options.fetch(:anisotropy, 1.0);
38
+
39
+ @offset = Vector2.new(0.0, 0.0)
40
+ @repeat = Vector2.new(1.0, 1.0)
41
+
42
+ @format = options.fetch(:format, RGBAFormat)
43
+ @type = options.fetch(:type, UnsignedByteType)
44
+
45
+ @depth_buffer = options.fetch(:depth_buffer, true)
46
+ @stencil_buffer = options.fetch(:stencil_buffer, true)
47
+
48
+ @generate_mipmaps = true
49
+
50
+ @share_depth_from = options.fetch(:share_depth_from, nil)
51
+ end
52
+
53
+ def set_size(width, height)
54
+ @width = width
55
+ @height = height
56
+ end
57
+
58
+ def needs_update?
59
+ false
60
+ end
61
+
62
+ def clone
63
+ RenderTarget.new(@width, @height).tap do |tmp|
64
+ tmp.renderer = @renderer
65
+
66
+ tmp.wrap_s = @wrap_s
67
+ tmp.wrap_t = @wrap_t
68
+
69
+ tmp.mag_filter = @mag_filter
70
+ tmp.min_filter = @min_filter
71
+
72
+ tmp.anisotropy = @anisotropy
73
+
74
+ tmp.offset.copy(@offset)
75
+ tmp.repeat.copy(@repeat)
76
+
77
+ tmp.format = @format
78
+ tmp.type = @type
79
+
80
+ tmp.depth_buffer = @depth_buffer
81
+ tmp.stencil_buffer = @stencil_buffer
82
+
83
+ tmp.generate_mipmaps = @generate_mipmaps
84
+
85
+ tmp.share_depth_from = @share_depth_from
86
+ end
87
+ end
88
+
89
+ def dispose
90
+ dispatch_event(type: :dispose)
91
+ end
92
+ end
93
+ end
@@ -0,0 +1,8 @@
1
+ module Mittsu
2
+ class RenderTargetCube < RenderTarget
3
+ def initialize(size = 1, options = {})
4
+ super(size, size, options)
5
+ # TODO
6
+ end
7
+ end
8
+ end
@@ -39,7 +39,7 @@ module Mittsu
39
39
  @generate_mipmaps = true
40
40
  @premultiply_alpha = false
41
41
  @filp_y = true
42
- @unpack_alignment = 4 # valid values: 1, 2, 4, 8 (see http://www.khronos.org/opengles/sdk/docs/man/xhtml/glPixelStorei.xml)
42
+ @unpack_alignment = 4 # valid values: 1, 2, 4, 8 (see http://www.khronos.org/opengles/sdk/docs/man/xhtml/GL.PixelStorei.xml)
43
43
 
44
44
  @_needs_update = false
45
45
  @on_update = nil
@@ -3,3 +3,5 @@ require 'mittsu/textures/compressed_texture'
3
3
  require 'mittsu/textures/cube_texture'
4
4
  require 'mittsu/textures/data_texture'
5
5
  require 'mittsu/textures/video_texture'
6
+ require 'mittsu/textures/render_target'
7
+ require 'mittsu/textures/render_target_cube'
@@ -1,3 +1,3 @@
1
1
  module Mittsu
2
- VERSION = "0.4.0"
2
+ VERSION = "0.5.0"
3
3
  end
data/lib/mittsu.rb CHANGED
@@ -8,7 +8,6 @@ require "mittsu/lights"
8
8
  require "mittsu/loaders"
9
9
  require "mittsu/materials"
10
10
  require "mittsu/objects"
11
- require "mittsu/renderers"
12
11
  require "mittsu/scenes"
13
12
  require "mittsu/textures"
14
13
  require "mittsu/constants"
data/mittsu.gemspec CHANGED
@@ -10,28 +10,24 @@ Gem::Specification.new do |spec|
10
10
  spec.email = ["danini@hey.com"]
11
11
 
12
12
  spec.summary = %q{3D Graphics Library for Ruby}
13
- spec.description = %q{Mittsu makes 3D graphics easier by providing an abstraction over OpenGL, and is based heavily off of THREE.js. No more weird pointers and wondering about the difference between a VAO and a VBO (besides the letter). Simply think of something awesome and make it!}
13
+ spec.description = %q{Mittsu is a 3D Graphics Library for Ruby, based heavily on Three.js}
14
14
  spec.homepage = "https://github.com/danini-the-panini/mittsu"
15
15
  spec.license = "MIT"
16
16
  spec.metadata = {
17
17
  "bug_tracker" => "https://github.com/danini-the-panini/mittsu/issues"
18
18
  }
19
19
 
20
- spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{(^(test|examples)/|\.sh$)}) }
20
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{(^(test)/|\.sh$)}) }
21
21
  spec.require_paths = ["lib"]
22
22
 
23
- spec.required_ruby_version = '>= 2.0.0'
24
- spec.requirements << 'OpenGL 3.3+ capable hardware and drivers'
23
+ spec.required_ruby_version = '>= 2.6.0'
25
24
 
26
- spec.add_runtime_dependency 'opengl-bindings'
27
- spec.add_runtime_dependency 'ffi'
28
25
  spec.add_runtime_dependency 'chunky_png'
29
26
 
30
- spec.add_development_dependency "bundler"
31
- spec.add_development_dependency "rake"
32
- spec.add_development_dependency 'minitest'
33
- spec.add_development_dependency 'minitest-reporters'
34
- spec.add_development_dependency 'pry'
35
- spec.add_development_dependency 'benchmark-ips'
27
+ spec.add_development_dependency 'bundler', '~> 2.0'
28
+ spec.add_development_dependency 'rake', '~> 13.0'
29
+ spec.add_development_dependency 'minitest', '~> 5.0'
30
+ spec.add_development_dependency 'minitest-reporters', '~> 1.7'
31
+ spec.add_development_dependency 'benchmark-ips', '~> 2.14'
36
32
  spec.add_development_dependency 'simplecov', '0.17.1'
37
33
  end
metadata CHANGED
@@ -1,43 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mittsu
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Danielle Smith
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-07-13 00:00:00.000000000 Z
11
+ date: 2024-11-17 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: opengl-bindings
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '0'
27
- - !ruby/object:Gem::Dependency
28
- name: ffi
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
13
  - !ruby/object:Gem::Dependency
42
14
  name: chunky_png
43
15
  requirement: !ruby/object:Gem::Requirement
@@ -56,86 +28,72 @@ dependencies:
56
28
  name: bundler
57
29
  requirement: !ruby/object:Gem::Requirement
58
30
  requirements:
59
- - - ">="
31
+ - - "~>"
60
32
  - !ruby/object:Gem::Version
61
- version: '0'
33
+ version: '2.0'
62
34
  type: :development
63
35
  prerelease: false
64
36
  version_requirements: !ruby/object:Gem::Requirement
65
37
  requirements:
66
- - - ">="
38
+ - - "~>"
67
39
  - !ruby/object:Gem::Version
68
- version: '0'
40
+ version: '2.0'
69
41
  - !ruby/object:Gem::Dependency
70
42
  name: rake
71
43
  requirement: !ruby/object:Gem::Requirement
72
44
  requirements:
73
- - - ">="
45
+ - - "~>"
74
46
  - !ruby/object:Gem::Version
75
- version: '0'
47
+ version: '13.0'
76
48
  type: :development
77
49
  prerelease: false
78
50
  version_requirements: !ruby/object:Gem::Requirement
79
51
  requirements:
80
- - - ">="
52
+ - - "~>"
81
53
  - !ruby/object:Gem::Version
82
- version: '0'
54
+ version: '13.0'
83
55
  - !ruby/object:Gem::Dependency
84
56
  name: minitest
85
57
  requirement: !ruby/object:Gem::Requirement
86
58
  requirements:
87
- - - ">="
59
+ - - "~>"
88
60
  - !ruby/object:Gem::Version
89
- version: '0'
61
+ version: '5.0'
90
62
  type: :development
91
63
  prerelease: false
92
64
  version_requirements: !ruby/object:Gem::Requirement
93
65
  requirements:
94
- - - ">="
66
+ - - "~>"
95
67
  - !ruby/object:Gem::Version
96
- version: '0'
68
+ version: '5.0'
97
69
  - !ruby/object:Gem::Dependency
98
70
  name: minitest-reporters
99
71
  requirement: !ruby/object:Gem::Requirement
100
72
  requirements:
101
- - - ">="
73
+ - - "~>"
102
74
  - !ruby/object:Gem::Version
103
- version: '0'
75
+ version: '1.7'
104
76
  type: :development
105
77
  prerelease: false
106
78
  version_requirements: !ruby/object:Gem::Requirement
107
79
  requirements:
108
- - - ">="
80
+ - - "~>"
109
81
  - !ruby/object:Gem::Version
110
- version: '0'
111
- - !ruby/object:Gem::Dependency
112
- name: pry
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - ">="
116
- - !ruby/object:Gem::Version
117
- version: '0'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - ">="
123
- - !ruby/object:Gem::Version
124
- version: '0'
82
+ version: '1.7'
125
83
  - !ruby/object:Gem::Dependency
126
84
  name: benchmark-ips
127
85
  requirement: !ruby/object:Gem::Requirement
128
86
  requirements:
129
- - - ">="
87
+ - - "~>"
130
88
  - !ruby/object:Gem::Version
131
- version: '0'
89
+ version: '2.14'
132
90
  type: :development
133
91
  prerelease: false
134
92
  version_requirements: !ruby/object:Gem::Requirement
135
93
  requirements:
136
- - - ">="
94
+ - - "~>"
137
95
  - !ruby/object:Gem::Version
138
- version: '0'
96
+ version: '2.14'
139
97
  - !ruby/object:Gem::Dependency
140
98
  name: simplecov
141
99
  requirement: !ruby/object:Gem::Requirement
@@ -150,10 +108,7 @@ dependencies:
150
108
  - - '='
151
109
  - !ruby/object:Gem::Version
152
110
  version: 0.17.1
153
- description: Mittsu makes 3D graphics easier by providing an abstraction over OpenGL,
154
- and is based heavily off of THREE.js. No more weird pointers and wondering about
155
- the difference between a VAO and a VBO (besides the letter). Simply think of something
156
- awesome and make it!
111
+ description: Mittsu is a 3D Graphics Library for Ruby, based heavily on Three.js
157
112
  email:
158
113
  - danini@hey.com
159
114
  executables: []
@@ -171,7 +126,6 @@ files:
171
126
  - Rakefile
172
127
  - bin/console
173
128
  - bin/setup
174
- - install-glfw.ps1
175
129
  - lib/mittsu.rb
176
130
  - lib/mittsu/cameras.rb
177
131
  - lib/mittsu/cameras/camera.rb
@@ -190,6 +144,7 @@ files:
190
144
  - lib/mittsu/core/hash_array.rb
191
145
  - lib/mittsu/core/object_3d.rb
192
146
  - lib/mittsu/core/raycaster.rb
147
+ - lib/mittsu/core/uniform.rb
193
148
  - lib/mittsu/extras.rb
194
149
  - lib/mittsu/extras/geometries.rb
195
150
  - lib/mittsu/extras/geometries/box_geometry.rb
@@ -231,6 +186,7 @@ files:
231
186
  - lib/mittsu/loaders/mtl_loader.rb
232
187
  - lib/mittsu/loaders/obj_loader.rb
233
188
  - lib/mittsu/loaders/obj_mtl_loader.rb
189
+ - lib/mittsu/loaders/stl_loader.rb
234
190
  - lib/mittsu/materials.rb
235
191
  - lib/mittsu/materials/line_basic_material.rb
236
192
  - lib/mittsu/materials/material.rb
@@ -267,140 +223,14 @@ files:
267
223
  - lib/mittsu/objects/mesh.rb
268
224
  - lib/mittsu/objects/point_cloud.rb
269
225
  - lib/mittsu/objects/sprite.rb
270
- - lib/mittsu/renderers.rb
271
- - lib/mittsu/renderers/generic_lib.rb
272
- - lib/mittsu/renderers/glfw_lib.rb
273
- - lib/mittsu/renderers/glfw_window.rb
274
- - lib/mittsu/renderers/opengl/core/buffer_geometry.rb
275
- - lib/mittsu/renderers/opengl/core/geometry.rb
276
- - lib/mittsu/renderers/opengl/core/object_3d.rb
277
- - lib/mittsu/renderers/opengl/lights/ambient_light.rb
278
- - lib/mittsu/renderers/opengl/lights/directional_light.rb
279
- - lib/mittsu/renderers/opengl/lights/hemisphere_light.rb
280
- - lib/mittsu/renderers/opengl/lights/light.rb
281
- - lib/mittsu/renderers/opengl/lights/point_light.rb
282
- - lib/mittsu/renderers/opengl/lights/spot_light.rb
283
- - lib/mittsu/renderers/opengl/materials/line_basic_material.rb
284
- - lib/mittsu/renderers/opengl/materials/material.rb
285
- - lib/mittsu/renderers/opengl/materials/mesh_basic_material.rb
286
- - lib/mittsu/renderers/opengl/materials/mesh_lambert_material.rb
287
- - lib/mittsu/renderers/opengl/materials/mesh_phong_material.rb
288
- - lib/mittsu/renderers/opengl/materials/opengl_material_basics.rb
289
- - lib/mittsu/renderers/opengl/materials/point_cloud_material.rb
290
- - lib/mittsu/renderers/opengl/materials/shader_material.rb
291
- - lib/mittsu/renderers/opengl/objects/group.rb
292
- - lib/mittsu/renderers/opengl/objects/line.rb
293
- - lib/mittsu/renderers/opengl/objects/mesh.rb
294
- - lib/mittsu/renderers/opengl/objects/point_cloud.rb
295
- - lib/mittsu/renderers/opengl/objects/sprite.rb
296
- - lib/mittsu/renderers/opengl/opengl_buffer.rb
297
- - lib/mittsu/renderers/opengl/opengl_debug.rb
298
- - lib/mittsu/renderers/opengl/opengl_default_target.rb
299
- - lib/mittsu/renderers/opengl/opengl_geometry_group.rb
300
- - lib/mittsu/renderers/opengl/opengl_geometry_like.rb
301
- - lib/mittsu/renderers/opengl/opengl_helper.rb
302
- - lib/mittsu/renderers/opengl/opengl_implementations.rb
303
- - lib/mittsu/renderers/opengl/opengl_lib.rb
304
- - lib/mittsu/renderers/opengl/opengl_light_renderer.rb
305
- - lib/mittsu/renderers/opengl/opengl_mittsu_params.rb
306
- - lib/mittsu/renderers/opengl/opengl_program.rb
307
- - lib/mittsu/renderers/opengl/opengl_shader.rb
308
- - lib/mittsu/renderers/opengl/opengl_state.rb
309
- - lib/mittsu/renderers/opengl/plugins/shadow_map_plugin.rb
310
- - lib/mittsu/renderers/opengl/plugins/sprite_fragment.glsl
311
- - lib/mittsu/renderers/opengl/plugins/sprite_plugin.rb
312
- - lib/mittsu/renderers/opengl/plugins/sprite_vertex.glsl
313
- - lib/mittsu/renderers/opengl/scenes/scene.rb
314
- - lib/mittsu/renderers/opengl/textures/compressed_texture.rb
315
- - lib/mittsu/renderers/opengl/textures/cube_texture.rb
316
- - lib/mittsu/renderers/opengl/textures/data_texture.rb
317
- - lib/mittsu/renderers/opengl/textures/texture.rb
318
- - lib/mittsu/renderers/opengl_render_target.rb
319
- - lib/mittsu/renderers/opengl_renderer.rb
320
- - lib/mittsu/renderers/shaders/rbsl_loader.rb
321
- - lib/mittsu/renderers/shaders/shader_chunk.rb
322
- - lib/mittsu/renderers/shaders/shader_chunk/alphamap_fragment.glsl
323
- - lib/mittsu/renderers/shaders/shader_chunk/alphamap_pars_fragment.glsl
324
- - lib/mittsu/renderers/shaders/shader_chunk/alphatest_fragment.glsl
325
- - lib/mittsu/renderers/shaders/shader_chunk/bumpmap_pars_fragment.glsl
326
- - lib/mittsu/renderers/shaders/shader_chunk/color_fragment.glsl
327
- - lib/mittsu/renderers/shaders/shader_chunk/color_pars_fragment.glsl
328
- - lib/mittsu/renderers/shaders/shader_chunk/color_pars_vertex.glsl
329
- - lib/mittsu/renderers/shaders/shader_chunk/color_vertex.glsl
330
- - lib/mittsu/renderers/shaders/shader_chunk/common.glsl
331
- - lib/mittsu/renderers/shaders/shader_chunk/default_vertex.glsl
332
- - lib/mittsu/renderers/shaders/shader_chunk/defaultnormal_vertex.glsl
333
- - lib/mittsu/renderers/shaders/shader_chunk/envmap_fragment.glsl
334
- - lib/mittsu/renderers/shaders/shader_chunk/envmap_pars_fragment.glsl
335
- - lib/mittsu/renderers/shaders/shader_chunk/envmap_pars_vertex.glsl
336
- - lib/mittsu/renderers/shaders/shader_chunk/envmap_vertex.glsl
337
- - lib/mittsu/renderers/shaders/shader_chunk/fog_fragment.glsl
338
- - lib/mittsu/renderers/shaders/shader_chunk/fog_pars_fragment.glsl
339
- - lib/mittsu/renderers/shaders/shader_chunk/lightmap_fragment.glsl
340
- - lib/mittsu/renderers/shaders/shader_chunk/lightmap_pars_fragment.glsl
341
- - lib/mittsu/renderers/shaders/shader_chunk/lightmap_pars_vertex.glsl
342
- - lib/mittsu/renderers/shaders/shader_chunk/lightmap_vertex.glsl
343
- - lib/mittsu/renderers/shaders/shader_chunk/lights_lambert_pars_vertex.glsl
344
- - lib/mittsu/renderers/shaders/shader_chunk/lights_lambert_vertex.glsl
345
- - lib/mittsu/renderers/shaders/shader_chunk/lights_phong_fragment.glsl
346
- - lib/mittsu/renderers/shaders/shader_chunk/lights_phong_pars_fragment.glsl
347
- - lib/mittsu/renderers/shaders/shader_chunk/lights_phong_pars_vertex.glsl
348
- - lib/mittsu/renderers/shaders/shader_chunk/lights_phong_vertex.glsl
349
- - lib/mittsu/renderers/shaders/shader_chunk/linear_to_gamma_fragment.glsl
350
- - lib/mittsu/renderers/shaders/shader_chunk/logdepthbuf_fragment.glsl
351
- - lib/mittsu/renderers/shaders/shader_chunk/logdepthbuf_pars_fragment.glsl
352
- - lib/mittsu/renderers/shaders/shader_chunk/logdepthbuf_pars_vertex.glsl
353
- - lib/mittsu/renderers/shaders/shader_chunk/logdepthbuf_vertex.glsl
354
- - lib/mittsu/renderers/shaders/shader_chunk/map_fragment.glsl
355
- - lib/mittsu/renderers/shaders/shader_chunk/map_pars_fragment.glsl
356
- - lib/mittsu/renderers/shaders/shader_chunk/map_pars_vertex.glsl
357
- - lib/mittsu/renderers/shaders/shader_chunk/map_particle_fragment.glsl
358
- - lib/mittsu/renderers/shaders/shader_chunk/map_particle_pars_fragment.glsl
359
- - lib/mittsu/renderers/shaders/shader_chunk/map_vertex.glsl
360
- - lib/mittsu/renderers/shaders/shader_chunk/morphnormal_vertex.glsl
361
- - lib/mittsu/renderers/shaders/shader_chunk/morphtarget_pars_vertex.glsl
362
- - lib/mittsu/renderers/shaders/shader_chunk/morphtarget_vertex.glsl
363
- - lib/mittsu/renderers/shaders/shader_chunk/normalmap_pars_fragment.glsl
364
- - lib/mittsu/renderers/shaders/shader_chunk/shadowmap_fragment.glsl
365
- - lib/mittsu/renderers/shaders/shader_chunk/shadowmap_pars_fragment.glsl
366
- - lib/mittsu/renderers/shaders/shader_chunk/shadowmap_pars_vertex.glsl
367
- - lib/mittsu/renderers/shaders/shader_chunk/shadowmap_vertex.glsl
368
- - lib/mittsu/renderers/shaders/shader_chunk/skinbase_vertex.glsl
369
- - lib/mittsu/renderers/shaders/shader_chunk/skinning_pars_vertex.glsl
370
- - lib/mittsu/renderers/shaders/shader_chunk/skinning_vertex.glsl
371
- - lib/mittsu/renderers/shaders/shader_chunk/skinnormal_vertex.glsl
372
- - lib/mittsu/renderers/shaders/shader_chunk/specularmap_fragment.glsl
373
- - lib/mittsu/renderers/shaders/shader_chunk/specularmap_pars_fragment.glsl
374
- - lib/mittsu/renderers/shaders/shader_chunk/worldpos_vertex.glsl
375
- - lib/mittsu/renderers/shaders/shader_lib.rb
376
- - lib/mittsu/renderers/shaders/shader_lib/basic/basic_fragment.rbsl
377
- - lib/mittsu/renderers/shaders/shader_lib/basic/basic_uniforms.rbslu
378
- - lib/mittsu/renderers/shaders/shader_lib/basic/basic_vertex.rbsl
379
- - lib/mittsu/renderers/shaders/shader_lib/cube/cube_fragment.rbsl
380
- - lib/mittsu/renderers/shaders/shader_lib/cube/cube_uniforms.rbslu
381
- - lib/mittsu/renderers/shaders/shader_lib/cube/cube_vertex.rbsl
382
- - lib/mittsu/renderers/shaders/shader_lib/depth_rgba/depth_rgba_fragment.rbsl
383
- - lib/mittsu/renderers/shaders/shader_lib/depth_rgba/depth_rgba_uniforms.rbslu
384
- - lib/mittsu/renderers/shaders/shader_lib/depth_rgba/depth_rgba_vertex.rbsl
385
- - lib/mittsu/renderers/shaders/shader_lib/lambert/lambert_fragment.rbsl
386
- - lib/mittsu/renderers/shaders/shader_lib/lambert/lambert_uniforms.rbslu
387
- - lib/mittsu/renderers/shaders/shader_lib/lambert/lambert_vertex.rbsl
388
- - lib/mittsu/renderers/shaders/shader_lib/particle_basic/particle_basic_fragment.rbsl
389
- - lib/mittsu/renderers/shaders/shader_lib/particle_basic/particle_basic_uniforms.rbslu
390
- - lib/mittsu/renderers/shaders/shader_lib/particle_basic/particle_basic_vertex.rbsl
391
- - lib/mittsu/renderers/shaders/shader_lib/phong/phong_fragment.rbsl
392
- - lib/mittsu/renderers/shaders/shader_lib/phong/phong_uniforms.rbslu
393
- - lib/mittsu/renderers/shaders/shader_lib/phong/phong_vertex.rbsl
394
- - lib/mittsu/renderers/shaders/shader_templates/fragment.glsl.erb
395
- - lib/mittsu/renderers/shaders/shader_templates/vertex.glsl.erb
396
- - lib/mittsu/renderers/shaders/uniforms_lib.rb
397
- - lib/mittsu/renderers/shaders/uniforms_utils.rb
398
226
  - lib/mittsu/scenes.rb
399
227
  - lib/mittsu/scenes/scene.rb
400
228
  - lib/mittsu/textures.rb
401
229
  - lib/mittsu/textures/compressed_texture.rb
402
230
  - lib/mittsu/textures/cube_texture.rb
403
231
  - lib/mittsu/textures/data_texture.rb
232
+ - lib/mittsu/textures/render_target.rb
233
+ - lib/mittsu/textures/render_target_cube.rb
404
234
  - lib/mittsu/textures/texture.rb
405
235
  - lib/mittsu/textures/video_texture.rb
406
236
  - lib/mittsu/utils.rb
@@ -411,7 +241,7 @@ licenses:
411
241
  - MIT
412
242
  metadata:
413
243
  bug_tracker: https://github.com/danini-the-panini/mittsu/issues
414
- post_install_message:
244
+ post_install_message:
415
245
  rdoc_options: []
416
246
  require_paths:
417
247
  - lib
@@ -419,16 +249,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
419
249
  requirements:
420
250
  - - ">="
421
251
  - !ruby/object:Gem::Version
422
- version: 2.0.0
252
+ version: 2.6.0
423
253
  required_rubygems_version: !ruby/object:Gem::Requirement
424
254
  requirements:
425
255
  - - ">="
426
256
  - !ruby/object:Gem::Version
427
257
  version: '0'
428
- requirements:
429
- - OpenGL 3.3+ capable hardware and drivers
430
- rubygems_version: 3.3.7
431
- signing_key:
258
+ requirements: []
259
+ rubygems_version: 3.5.23
260
+ signing_key:
432
261
  specification_version: 4
433
262
  summary: 3D Graphics Library for Ruby
434
263
  test_files: []
data/install-glfw.ps1 DELETED
@@ -1,13 +0,0 @@
1
- $glfwversion="3.3.1"
2
-
3
- Invoke-WebRequest "https://github.com/glfw/glfw/releases/download/$glfwversion/glfw-$glfwversion.bin.WIN32.zip" -OutFile "$pwd\glfw-$glfwversion.bin.WIN32.zip"
4
-
5
- Add-Type -AssemblyName System.IO.Compression.FileSystem
6
- function Unzip
7
- {
8
- param([string]$zipfile, [string]$outpath)
9
-
10
- [System.IO.Compression.ZipFile]::ExtractToDirectory($zipfile, $outpath)
11
- }
12
-
13
- Unzip "$pwd\glfw-$glfwversion.bin.WIN32.zip" "$pwd"