raytracer

package
v0.0.0-...-dcc2305 Latest Latest
Warning

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

Go to latest
Published: Jul 15, 2015 License: GPL-3.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

View Source
const (
	XY = iota
	XZ
	YZ
)
View Source
const (
	NOT_INITIALIZED = iota
	RENDERING
	STOPED
	FINISHED
)

render states

View Source
const (
	WindowName = "GO raytracer."
)

Variables

This section is empty.

Functions

func TestVisibility

func TestVisibility(start, end mymath.Vector, scene *Scene) bool

Types

type Camera

type Camera struct {
	// contains filtered or unexported fields
}

func NewCamera

func NewCamera(start mymath.Vector, yaw, pitch, roll, fov, aspect float64) *Camera

func (*Camera) GetRayAt

func (c *Camera) GetRayAt(x, y, scrWidth, scrHeight uint16) mymath.Ray

type Checker

type Checker struct {
	// contains filtered or unexported fields
}

func (*Checker) GetColor

func (c *Checker) GetColor(id *IntersectionData) utils.Color

type Color

type Color struct {
	// contains filtered or unexported fields
}

func (*Color) GetColor

func (c *Color) GetColor(id *IntersectionData) utils.Color

type Cube

type Cube struct {
	// contains filtered or unexported fields
}

func (*Cube) Intersect

func (c *Cube) Intersect(ray *mymath.Ray, crnDist float64) (bool, *IntersectionData)

type Geometry

type Geometry interface {
	Intersect(*mymath.Ray, float64) (bool, *IntersectionData)
}

type IntersectionData

type IntersectionData struct {
	// contains filtered or unexported fields
}

type Lambert

type Lambert struct {
	// contains filtered or unexported fields
}

func (*Lambert) Shade

func (c *Lambert) Shade(id *IntersectionData, ambLight utils.Color, scene *Scene) utils.Color

type Light

type Light struct {
	// contains filtered or unexported fields
}

type Plane

type Plane struct {
	// contains filtered or unexported fields
}

func (*Plane) Intersect

func (p *Plane) Intersect(ray *mymath.Ray, crnDist float64) (bool, *IntersectionData)

type RenderManager

type RenderManager struct {
	// contains filtered or unexported fields
}

func NewRenderManager

func NewRenderManager(width, height, workersCnt uint16) *RenderManager

func (*RenderManager) GetHeight

func (rm *RenderManager) GetHeight() uint16

func (*RenderManager) GetPixel

func (rm *RenderManager) GetPixel(x, y uint16) *utils.Color

func (*RenderManager) GetRenderTime

func (rm *RenderManager) GetRenderTime() time.Duration

func (*RenderManager) GetState

func (rm *RenderManager) GetState() uint16

func (*RenderManager) GetWidth

func (rm *RenderManager) GetWidth() uint16

func (*RenderManager) InitScene

func (rm *RenderManager) InitScene(sceneFileName string)

func (*RenderManager) StartRendering

func (rm *RenderManager) StartRendering()

func (*RenderManager) StopRendering

func (rm *RenderManager) StopRendering()

type Scene

type Scene struct {
	// contains filtered or unexported fields
}

func NewScene

func NewScene() *Scene

func (*Scene) AddLight

func (s *Scene) AddLight(lightCol utils.Color, lightPower float64, lightPos mymath.Vector)

func (*Scene) AddSceneElement

func (s *Scene) AddSceneElement(geometry Geometry, shader Shader) bool

type SceneElement

type SceneElement struct {
	// contains filtered or unexported fields
}

type Shader

type Shader interface {
	Shade(*IntersectionData, utils.Color, *Scene) utils.Color
}

type Sphere

type Sphere struct {
	// contains filtered or unexported fields
}

func (*Sphere) Intersect

func (s *Sphere) Intersect(ray *mymath.Ray, crnDist float64) (bool, *IntersectionData)

type Texture

type Texture interface {
	GetColor(*IntersectionData) utils.Color
}

type TextureImg

type TextureImg struct {
	// contains filtered or unexported fields
}

func InitTexture

func InitTexture(filepath string) (bool, *TextureImg)

for now loads only from png

func (*TextureImg) GetColor

func (t *TextureImg) GetColor(id *IntersectionData) utils.Color

Jump to

Keyboard shortcuts

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