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.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/lib/mittsu.rb +8 -0
- data/lib/mittsu/core/face3.rb +1 -1
- data/lib/mittsu/core/geometry.rb +0 -4
- data/lib/mittsu/core/object_3d.rb +7 -6
- data/lib/mittsu/extras/helpers/camera_helper.rb +2 -2
- data/lib/mittsu/materials/material.rb +0 -4
- data/lib/mittsu/renderers/opengl/core/{opengl_geometry.rb → geometry.rb} +23 -32
- data/lib/mittsu/renderers/opengl/core/{opengl_object_3d.rb → object_3d.rb} +20 -24
- data/lib/mittsu/renderers/opengl/lights/{opengl_ambient_light.rb → ambient_light.rb} +4 -4
- data/lib/mittsu/renderers/opengl/lights/{opengl_directional_light.rb → directional_light.rb} +4 -4
- data/lib/mittsu/renderers/opengl/lights/{opengl_hemisphere_light.rb → hemisphere_light.rb} +4 -7
- data/lib/mittsu/renderers/opengl/lights/light.rb +55 -0
- data/lib/mittsu/renderers/opengl/lights/{opengl_point_light.rb → point_light.rb} +5 -5
- data/lib/mittsu/renderers/opengl/lights/{opengl_spot_light.rb → spot_light.rb} +8 -8
- data/lib/mittsu/renderers/opengl/materials/{opengl_line_basic_material.rb → line_basic_material.rb} +3 -3
- data/lib/mittsu/renderers/opengl/materials/{opengl_material.rb → material.rb} +55 -56
- data/lib/mittsu/renderers/opengl/materials/mesh_basic_material.rb +21 -0
- data/lib/mittsu/renderers/opengl/materials/{opengl_mesh_lambert_material.rb → mesh_lambert_material.rb} +9 -5
- data/lib/mittsu/renderers/opengl/materials/{opengl_mesh_phong_material.rb → mesh_phong_material.rb} +11 -7
- data/lib/mittsu/renderers/opengl/materials/opengl_material_basics.rb +57 -0
- data/lib/mittsu/renderers/opengl/materials/{opengl_shader_material.rb → shader_material.rb} +1 -1
- data/lib/mittsu/renderers/opengl/objects/group.rb +9 -0
- data/lib/mittsu/renderers/opengl/objects/line.rb +45 -0
- data/lib/mittsu/renderers/opengl/objects/{opengl_mesh.rb → mesh.rb} +15 -22
- data/lib/mittsu/renderers/opengl/opengl_buffer.rb +4 -0
- data/lib/mittsu/renderers/opengl/opengl_debug.rb +5 -4
- data/lib/mittsu/renderers/opengl/opengl_default_target.rb +0 -4
- data/lib/mittsu/renderers/opengl/opengl_geometry_group.rb +2 -8
- data/lib/mittsu/renderers/opengl/opengl_geometry_like.rb +2 -1
- data/lib/mittsu/renderers/opengl/opengl_implementations.rb +24 -53
- data/lib/mittsu/renderers/opengl/opengl_lib.rb +62 -0
- data/lib/mittsu/renderers/opengl/opengl_light_renderer.rb +6 -6
- data/lib/mittsu/renderers/opengl/opengl_program.rb +3 -5
- data/lib/mittsu/renderers/opengl/plugins/shadow_map_plugin.rb +11 -12
- data/lib/mittsu/renderers/opengl/scenes/scene.rb +9 -0
- data/lib/mittsu/renderers/opengl/textures/{opengl_compressed_texture.rb → compressed_texture.rb} +5 -6
- data/lib/mittsu/renderers/opengl/textures/{opengl_cube_texture.rb → cube_texture.rb} +23 -21
- data/lib/mittsu/renderers/opengl/textures/{opengl_data_texture.rb → data_texture.rb} +3 -5
- data/lib/mittsu/renderers/opengl/textures/{opengl_texture.rb → texture.rb} +29 -33
- data/lib/mittsu/renderers/opengl_render_target.rb +5 -6
- data/lib/mittsu/renderers/opengl_renderer.rb +35 -44
- data/lib/mittsu/textures/texture.rb +0 -4
- data/lib/mittsu/version.rb +1 -1
- metadata +26 -24
- data/lib/mittsu/renderers/opengl/lights/opengl_light.rb +0 -52
- data/lib/mittsu/renderers/opengl/materials/opengl_mesh_basic_material.rb +0 -69
- data/lib/mittsu/renderers/opengl/objects/opengl_group.rb +0 -8
- data/lib/mittsu/renderers/opengl/objects/opengl_line.rb +0 -54
- data/lib/mittsu/renderers/opengl/scenes/opengl_scene.rb +0 -8
data/lib/mittsu/version.rb
CHANGED
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.
|
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-
|
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/
|
239
|
-
- lib/mittsu/renderers/opengl/core/
|
240
|
-
- lib/mittsu/renderers/opengl/lights/
|
241
|
-
- lib/mittsu/renderers/opengl/lights/
|
242
|
-
- lib/mittsu/renderers/opengl/lights/
|
243
|
-
- lib/mittsu/renderers/opengl/lights/
|
244
|
-
- lib/mittsu/renderers/opengl/lights/
|
245
|
-
- lib/mittsu/renderers/opengl/lights/
|
246
|
-
- lib/mittsu/renderers/opengl/materials/
|
247
|
-
- lib/mittsu/renderers/opengl/materials/
|
248
|
-
- lib/mittsu/renderers/opengl/materials/
|
249
|
-
- lib/mittsu/renderers/opengl/materials/
|
250
|
-
- lib/mittsu/renderers/opengl/materials/
|
251
|
-
- lib/mittsu/renderers/opengl/materials/
|
252
|
-
- lib/mittsu/renderers/opengl/
|
253
|
-
- lib/mittsu/renderers/opengl/objects/
|
254
|
-
- lib/mittsu/renderers/opengl/objects/
|
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/
|
269
|
-
- lib/mittsu/renderers/opengl/textures/
|
270
|
-
- lib/mittsu/renderers/opengl/textures/
|
271
|
-
- lib/mittsu/renderers/opengl/textures/
|
272
|
-
- lib/mittsu/renderers/opengl/textures/
|
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,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
|