mittsu 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
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"