mittsu 0.1.2 → 0.1.3

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 (51) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/lib/mittsu.rb +8 -0
  4. data/lib/mittsu/core/face3.rb +1 -1
  5. data/lib/mittsu/core/geometry.rb +0 -4
  6. data/lib/mittsu/core/object_3d.rb +7 -6
  7. data/lib/mittsu/extras/helpers/camera_helper.rb +2 -2
  8. data/lib/mittsu/materials/material.rb +0 -4
  9. data/lib/mittsu/renderers/opengl/core/{opengl_geometry.rb → geometry.rb} +23 -32
  10. data/lib/mittsu/renderers/opengl/core/{opengl_object_3d.rb → object_3d.rb} +20 -24
  11. data/lib/mittsu/renderers/opengl/lights/{opengl_ambient_light.rb → ambient_light.rb} +4 -4
  12. data/lib/mittsu/renderers/opengl/lights/{opengl_directional_light.rb → directional_light.rb} +4 -4
  13. data/lib/mittsu/renderers/opengl/lights/{opengl_hemisphere_light.rb → hemisphere_light.rb} +4 -7
  14. data/lib/mittsu/renderers/opengl/lights/light.rb +55 -0
  15. data/lib/mittsu/renderers/opengl/lights/{opengl_point_light.rb → point_light.rb} +5 -5
  16. data/lib/mittsu/renderers/opengl/lights/{opengl_spot_light.rb → spot_light.rb} +8 -8
  17. data/lib/mittsu/renderers/opengl/materials/{opengl_line_basic_material.rb → line_basic_material.rb} +3 -3
  18. data/lib/mittsu/renderers/opengl/materials/{opengl_material.rb → material.rb} +55 -56
  19. data/lib/mittsu/renderers/opengl/materials/mesh_basic_material.rb +21 -0
  20. data/lib/mittsu/renderers/opengl/materials/{opengl_mesh_lambert_material.rb → mesh_lambert_material.rb} +9 -5
  21. data/lib/mittsu/renderers/opengl/materials/{opengl_mesh_phong_material.rb → mesh_phong_material.rb} +11 -7
  22. data/lib/mittsu/renderers/opengl/materials/opengl_material_basics.rb +57 -0
  23. data/lib/mittsu/renderers/opengl/materials/{opengl_shader_material.rb → shader_material.rb} +1 -1
  24. data/lib/mittsu/renderers/opengl/objects/group.rb +9 -0
  25. data/lib/mittsu/renderers/opengl/objects/line.rb +45 -0
  26. data/lib/mittsu/renderers/opengl/objects/{opengl_mesh.rb → mesh.rb} +15 -22
  27. data/lib/mittsu/renderers/opengl/opengl_buffer.rb +4 -0
  28. data/lib/mittsu/renderers/opengl/opengl_debug.rb +5 -4
  29. data/lib/mittsu/renderers/opengl/opengl_default_target.rb +0 -4
  30. data/lib/mittsu/renderers/opengl/opengl_geometry_group.rb +2 -8
  31. data/lib/mittsu/renderers/opengl/opengl_geometry_like.rb +2 -1
  32. data/lib/mittsu/renderers/opengl/opengl_implementations.rb +24 -53
  33. data/lib/mittsu/renderers/opengl/opengl_lib.rb +62 -0
  34. data/lib/mittsu/renderers/opengl/opengl_light_renderer.rb +6 -6
  35. data/lib/mittsu/renderers/opengl/opengl_program.rb +3 -5
  36. data/lib/mittsu/renderers/opengl/plugins/shadow_map_plugin.rb +11 -12
  37. data/lib/mittsu/renderers/opengl/scenes/scene.rb +9 -0
  38. data/lib/mittsu/renderers/opengl/textures/{opengl_compressed_texture.rb → compressed_texture.rb} +5 -6
  39. data/lib/mittsu/renderers/opengl/textures/{opengl_cube_texture.rb → cube_texture.rb} +23 -21
  40. data/lib/mittsu/renderers/opengl/textures/{opengl_data_texture.rb → data_texture.rb} +3 -5
  41. data/lib/mittsu/renderers/opengl/textures/{opengl_texture.rb → texture.rb} +29 -33
  42. data/lib/mittsu/renderers/opengl_render_target.rb +5 -6
  43. data/lib/mittsu/renderers/opengl_renderer.rb +35 -44
  44. data/lib/mittsu/textures/texture.rb +0 -4
  45. data/lib/mittsu/version.rb +1 -1
  46. metadata +26 -24
  47. data/lib/mittsu/renderers/opengl/lights/opengl_light.rb +0 -52
  48. data/lib/mittsu/renderers/opengl/materials/opengl_mesh_basic_material.rb +0 -69
  49. data/lib/mittsu/renderers/opengl/objects/opengl_group.rb +0 -8
  50. data/lib/mittsu/renderers/opengl/objects/opengl_line.rb +0 -54
  51. data/lib/mittsu/renderers/opengl/scenes/opengl_scene.rb +0 -8
@@ -87,9 +87,5 @@ module Mittsu
87
87
  def dispose
88
88
  dispatch_event type: :dispose
89
89
  end
90
-
91
- def implementation(renderer)
92
- @_implementation ||= renderer.create_implementation(self)
93
- end
94
90
  end
95
91
  end
@@ -1,4 +1,4 @@
1
1
  module Mittsu
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  REVISION = "71"
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mittsu
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Smith
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-15 00:00:00.000000000 Z
11
+ date: 2016-09-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: opengl-bindings
@@ -235,23 +235,24 @@ files:
235
235
  - lib/mittsu/objects/mesh.rb
236
236
  - lib/mittsu/renderers.rb
237
237
  - lib/mittsu/renderers/glfw_window.rb
238
- - lib/mittsu/renderers/opengl/core/opengl_geometry.rb
239
- - lib/mittsu/renderers/opengl/core/opengl_object_3d.rb
240
- - lib/mittsu/renderers/opengl/lights/opengl_ambient_light.rb
241
- - lib/mittsu/renderers/opengl/lights/opengl_directional_light.rb
242
- - lib/mittsu/renderers/opengl/lights/opengl_hemisphere_light.rb
243
- - lib/mittsu/renderers/opengl/lights/opengl_light.rb
244
- - lib/mittsu/renderers/opengl/lights/opengl_point_light.rb
245
- - lib/mittsu/renderers/opengl/lights/opengl_spot_light.rb
246
- - lib/mittsu/renderers/opengl/materials/opengl_line_basic_material.rb
247
- - lib/mittsu/renderers/opengl/materials/opengl_material.rb
248
- - lib/mittsu/renderers/opengl/materials/opengl_mesh_basic_material.rb
249
- - lib/mittsu/renderers/opengl/materials/opengl_mesh_lambert_material.rb
250
- - lib/mittsu/renderers/opengl/materials/opengl_mesh_phong_material.rb
251
- - lib/mittsu/renderers/opengl/materials/opengl_shader_material.rb
252
- - lib/mittsu/renderers/opengl/objects/opengl_group.rb
253
- - lib/mittsu/renderers/opengl/objects/opengl_line.rb
254
- - lib/mittsu/renderers/opengl/objects/opengl_mesh.rb
238
+ - lib/mittsu/renderers/opengl/core/geometry.rb
239
+ - lib/mittsu/renderers/opengl/core/object_3d.rb
240
+ - lib/mittsu/renderers/opengl/lights/ambient_light.rb
241
+ - lib/mittsu/renderers/opengl/lights/directional_light.rb
242
+ - lib/mittsu/renderers/opengl/lights/hemisphere_light.rb
243
+ - lib/mittsu/renderers/opengl/lights/light.rb
244
+ - lib/mittsu/renderers/opengl/lights/point_light.rb
245
+ - lib/mittsu/renderers/opengl/lights/spot_light.rb
246
+ - lib/mittsu/renderers/opengl/materials/line_basic_material.rb
247
+ - lib/mittsu/renderers/opengl/materials/material.rb
248
+ - lib/mittsu/renderers/opengl/materials/mesh_basic_material.rb
249
+ - lib/mittsu/renderers/opengl/materials/mesh_lambert_material.rb
250
+ - lib/mittsu/renderers/opengl/materials/mesh_phong_material.rb
251
+ - lib/mittsu/renderers/opengl/materials/opengl_material_basics.rb
252
+ - lib/mittsu/renderers/opengl/materials/shader_material.rb
253
+ - lib/mittsu/renderers/opengl/objects/group.rb
254
+ - lib/mittsu/renderers/opengl/objects/line.rb
255
+ - lib/mittsu/renderers/opengl/objects/mesh.rb
255
256
  - lib/mittsu/renderers/opengl/opengl_buffer.rb
256
257
  - lib/mittsu/renderers/opengl/opengl_debug.rb
257
258
  - lib/mittsu/renderers/opengl/opengl_default_target.rb
@@ -259,17 +260,18 @@ files:
259
260
  - lib/mittsu/renderers/opengl/opengl_geometry_like.rb
260
261
  - lib/mittsu/renderers/opengl/opengl_helper.rb
261
262
  - lib/mittsu/renderers/opengl/opengl_implementations.rb
263
+ - lib/mittsu/renderers/opengl/opengl_lib.rb
262
264
  - lib/mittsu/renderers/opengl/opengl_light_renderer.rb
263
265
  - lib/mittsu/renderers/opengl/opengl_mittsu_params.rb
264
266
  - lib/mittsu/renderers/opengl/opengl_program.rb
265
267
  - lib/mittsu/renderers/opengl/opengl_shader.rb
266
268
  - lib/mittsu/renderers/opengl/opengl_state.rb
267
269
  - lib/mittsu/renderers/opengl/plugins/shadow_map_plugin.rb
268
- - lib/mittsu/renderers/opengl/scenes/opengl_scene.rb
269
- - lib/mittsu/renderers/opengl/textures/opengl_compressed_texture.rb
270
- - lib/mittsu/renderers/opengl/textures/opengl_cube_texture.rb
271
- - lib/mittsu/renderers/opengl/textures/opengl_data_texture.rb
272
- - lib/mittsu/renderers/opengl/textures/opengl_texture.rb
270
+ - lib/mittsu/renderers/opengl/scenes/scene.rb
271
+ - lib/mittsu/renderers/opengl/textures/compressed_texture.rb
272
+ - lib/mittsu/renderers/opengl/textures/cube_texture.rb
273
+ - lib/mittsu/renderers/opengl/textures/data_texture.rb
274
+ - lib/mittsu/renderers/opengl/textures/texture.rb
273
275
  - lib/mittsu/renderers/opengl_render_target.rb
274
276
  - lib/mittsu/renderers/opengl_renderer.rb
275
277
  - lib/mittsu/renderers/shaders/rbsl_loader.rb
@@ -1,52 +0,0 @@
1
- module Mittsu
2
- class OpenGLLight < OpenGLObject3D
3
- attr_accessor :camera_helper
4
-
5
- def initialize(light, renderer)
6
- super
7
- @light = light
8
- @light_renderer = renderer.light_renderer
9
- @cache = @light_renderer.cache[type]
10
-
11
- @_direction = Vector3.new
12
- @_vector3 = Vector3.new
13
- end
14
-
15
- def type
16
- self.class::TYPE
17
- end
18
-
19
- def setup
20
- @cache.count += 1
21
-
22
- return unless @light.visible
23
- setup_specific(@cache.length)
24
-
25
- @cache.length += 1
26
- end
27
-
28
- def project
29
- return unless @light.visible
30
- init
31
- # TODO!!! FIXME!!!
32
- @renderer.instance_variable_get(:@lights) << @light
33
- project_children
34
- end
35
-
36
- def setup_specific
37
- raise "Unknown Light Impl: #{@light.class} => #{self.class}"
38
- end
39
-
40
- def self.null_remaining_lights(cache, colors = nil)
41
- colors ||= cache.colors
42
- count = [colors.length, cache.count * 3].max
43
- (cache.length * 3).upto(count - 1).each { |i|
44
- colors[i] = 0.0
45
- }
46
- end
47
-
48
- def to_sym
49
- :other
50
- end
51
- end
52
- end
@@ -1,69 +0,0 @@
1
- module Mittsu
2
- class OpenGLMeshBasicMaterial < OpenGLMaterial
3
- def refresh_uniforms(uniforms)
4
- refresh_map_uniforms(uniforms)
5
- refresh_env_map_uniforms(uniforms)
6
- refresh_other_uniforms(uniforms)
7
- end
8
-
9
- protected
10
-
11
- def init_shader
12
- @shader = ShaderLib.create_shader(shader_id)
13
- end
14
-
15
- def shader_id
16
- :basic
17
- end
18
-
19
- private
20
-
21
- def get_uv_scale_map
22
- @material.map ||
23
- @material.specular_map ||
24
- @material.normal_map ||
25
- @material.bump_map ||
26
- @material.alpha_map
27
- end
28
-
29
- def refresh_map_uniforms(uniforms)
30
- uniforms['map'].value = @material.map
31
- uniforms['lightMap'].value = @material.light_map
32
- uniforms['specularMap'].value = @material.specular_map
33
- uniforms['alphaMap'].value = @material.alpha_map
34
-
35
- if @material.bump_map
36
- uniforms['bumpMap'].value = @material.bump_map
37
- uniforms['bumpScale'].value = @material.bump_scale
38
- end
39
-
40
- if @material.normal_map
41
- uniforms['normalMap'].value = @material.normal_map
42
- uniforms['normalScale'].value.copy(@material.normal_scale)
43
- end
44
- end
45
-
46
- def refresh_env_map_uniforms(uniforms)
47
- uv_scale_map = get_uv_scale_map
48
-
49
- if uv_scale_map
50
- offset = uv_scale_map.offset
51
- repeat = uv_scale_map.repeat
52
-
53
- uniforms['offsetRepeat'].value.set(offset.x, offset.y, repeat.x, repeat.y)
54
- end
55
-
56
- uniforms['envMap'].value = @material.env_map
57
- # TODO: when OpenGLRenderTargetCube exists
58
- # uniforms['flipEnvMap'].value = @material.envMap.is_a?(OpenGLRenderTargetCube) ? 1 : - 1
59
- end
60
-
61
- def refresh_other_uniforms(uniforms)
62
- uniforms['opacity'].value = @material.opacity
63
- uniforms['diffuse'].value = @material.color
64
-
65
- uniforms['reflectivity'].value = @material.reflectivity
66
- uniforms['refractionRatio'].value = @material.refraction_ratio
67
- end
68
- end
69
- end
@@ -1,8 +0,0 @@
1
- module Mittsu
2
- class OpenGLGroup < OpenGLObject3D
3
- def project
4
- return unless @object.visible
5
- project_children
6
- end
7
- end
8
- end
@@ -1,54 +0,0 @@
1
- module Mittsu
2
- class OpenGLLine < OpenGLObject3D
3
- def initialize(line, renderer)
4
- super
5
- @line = line
6
- end
7
-
8
- def render_buffer(camera, lights, fog, material, geometry_group, update_buffers)
9
- mode = @line.mode == LineStrip ? GL_LINE_STRIP : GL_LINES
10
-
11
- @renderer.state.set_line_width(material.line_width * @renderer.pixel_ratio)
12
-
13
- glDrawArrays(mode, 0, geometry_group.line_count)
14
-
15
- @renderer.info[:render][:calls] += 1
16
- end
17
-
18
- def update
19
- # TODO: glBindVertexArray ???
20
- geometry = @line.geometry
21
- material = buffer_material(geometry)
22
- material_impl = material.implementation(@renderer)
23
- custom_attributes_dirty = material.attributes && material_impl.custom_attributes_dirty?
24
-
25
- if geometry.vertices_need_update || geometry.colors_need_update || geometry.line_distances_need_update || custom_attributes_dirty
26
- geometry_impl = geometry.implementation(self)
27
- geometry_impl.set_line_buffers(GL_DYNAMIC_DRAW)
28
- end
29
-
30
- geometry.vertices_need_update = false
31
- geometry.colors_need_update = false
32
- geometry.line_distances_need_update = false
33
-
34
- material.attributes && material_impl.clear_custom_attributes
35
- end
36
-
37
- def init_geometry
38
- geometry = @object.geometry
39
- geometry_impl = geometry.implementation(@renderer)
40
- if geometry_impl.vertex_buffer.nil?
41
- geometry_impl.create_line_buffers
42
- geometry_impl.init_line_buffers(@object)
43
-
44
- geometry.vertices_need_update = true
45
- geometry.colors_need_update = true
46
- geometry.line_distances_need_update
47
- end
48
- end
49
-
50
- def add_opengl_object
51
- @renderer.add_opengl_object(@object.geometry, @object)
52
- end
53
- end
54
- end
@@ -1,8 +0,0 @@
1
- module Mittsu
2
- class OpenGLScene < OpenGLObject3D
3
- def project
4
- return unless @object.visible
5
- project_children
6
- end
7
- end
8
- end