Sha256: e1f01812a5659abd8661cc0aa0d0063db4109c21f7dcc09ebfbe12cb2e5961ac

Contents?: true

Size: 761 Bytes

Versions: 2

Compression:

Stored size: 761 Bytes

Contents

require 'mittsu/opengl/material_basics'

module Mittsu
  class MeshPhongMaterial
    include OpenGL::MaterialBasics

    def needs_face_normals?
      false
    end

    def refresh_uniforms(uniforms)
      refresh_uniforms_basic(uniforms)

      uniforms['shininess'].value = shininess

      uniforms['emissive'].value = emissive
      uniforms['specular'].value = specular

      if wrap_around
        uniforms['wrapRGB'].value.copy(wrap_rgb)
      end
    end

    def needs_camera_position_uniform?
      true
    end

    def needs_view_matrix_uniform?
      true
    end

    def needs_lights?
      true
    end

    def init_shader
      @shader = OpenGL::Shader::Lib.create_shader(shader_id)
    end

    def shader_id
      :phong
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
mittsu-opengl-0.5.1 lib/mittsu/opengl_implementation/materials/mesh_phong_material.rb
mittsu-opengl-0.5.0 lib/mittsu/opengl_implementation/materials/mesh_phong_material.rb