shader

package
v0.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 27, 2017 License: BSD-2-Clause Imports: 10 Imported by: 0

Documentation

Overview

Package shader provides the default shader(s) for Vermeer.

This package is in heavy development so documentation somewhat sketchy.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Debug

type Debug struct {
	NodeDef core.NodeDef `node:"-"`
	MtlName string       `node:"Name"`

	Sides  int              `node:",opt"` // One or two sided
	Colour param.RGBUniform // Colour parameter
}

Debug is the default surface shader.

func (*Debug) Def

func (sh *Debug) Def() core.NodeDef

Def is a core.Node method.

func (*Debug) Eval

func (sh *Debug) Eval(sg *core.ShaderContext)

Eval implements core.Shader. Performs all shading for the surface point in sg. May trace rays and shadow rays.

func (*Debug) EvalEmission

func (sh *Debug) EvalEmission(sg *core.ShaderContext, omegaO m.Vec3) colour.RGB

EvalEmission implements core.Shader.

func (*Debug) Name

func (sh *Debug) Name() string

Name is a core.Node method.

func (*Debug) PostRender

func (sh *Debug) PostRender() error

PostRender is a core.Node method.

func (*Debug) PreRender

func (sh *Debug) PreRender() error

PreRender is a core.Node method.

type ShaderStd

type ShaderStd struct {
	NodeDef core.NodeDef `node:"-"`
	MtlName string       `node:"Name"`

	EmissionColour   param.RGBUniform     `node:",opt"`
	EmissionStrength param.Float32Uniform `node:",opt"`

	Sides int `node:",opt"` // One or two sided

	DiffuseColour    param.RGBUniform     `node:",opt"` // Colour parameter
	DiffuseStrength  param.Float32Uniform `node:",opt"` // Weight parameter
	DiffuseRoughness param.Float32Uniform `node:",opt"` // Oren-Nayar Roughness parameter

	Spec1Colour       param.RGBUniform     `node:",opt"` // Colour parameter
	Spec1Strength     param.Float32Uniform `node:",opt"` // Weight parameter
	Spec1Roughness    param.Float32Uniform `node:",opt"`
	Spec1FresnelModel string               `node:",opt"`

	Spec1FresnelRefl param.RGBUniform `node:",opt"` // Colour parameter
	Spec1FresnelEdge param.RGBUniform `node:",opt"` // Colour parameter

	IOR param.Float32Uniform `node:",opt"`
	// contains filtered or unexported fields
}

ShaderStd is the default surface shader.

func (*ShaderStd) Def

func (sh *ShaderStd) Def() core.NodeDef

Def is a core.Node method.

func (*ShaderStd) Eval

func (sh *ShaderStd) Eval(sg *core.ShaderContext)

Eval implements core.Shader. Performs all shading for the surface point in sg. May trace rays and shadow rays.

func (*ShaderStd) EvalEmission

func (sh *ShaderStd) EvalEmission(sg *core.ShaderContext, omegaO m.Vec3) colour.RGB

EvalEmission implements core.Shader.

func (*ShaderStd) Name

func (sh *ShaderStd) Name() string

Name is a core.Node method.

func (*ShaderStd) PostRender

func (sh *ShaderStd) PostRender() error

PostRender is a core.Node method.

func (*ShaderStd) PreRender

func (sh *ShaderStd) PreRender() error

PreRender is a core.Node method.

Directories

Path Synopsis
Package bsdf provides built-in B(R/S)DF (Bidirectional Reflectance/Scattering Distribution Function) models for Vermeer.
Package bsdf provides built-in B(R/S)DF (Bidirectional Reflectance/Scattering Distribution Function) models for Vermeer.
Package fresnel implements various Fresnel models.
Package fresnel implements various Fresnel models.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL