pack

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Nov 3, 2020 License: MIT Imports: 22 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CubeUVToUVW

func CubeUVToUVW(side CubeSide, uv dprec.Vec2) dprec.Vec3

func UVWToEquirectangularUV

func UVWToEquirectangularUV(uvw dprec.Vec3) dprec.Vec2

Types

type Action

type Action interface {
	Run() error
}

type AssetLocator

type AssetLocator interface {
	Create(uri string) (io.WriteCloser, error)
}

type BuildCubeImageAction

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

func (*BuildCubeImageAction) CubeImage

func (a *BuildCubeImageAction) CubeImage() *CubeImage

func (*BuildCubeImageAction) Describe

func (*BuildCubeImageAction) Describe() string

func (*BuildCubeImageAction) Run

func (a *BuildCubeImageAction) Run() error

type BuildCubeImageOption

type BuildCubeImageOption func(a *BuildCubeImageAction)

func WithBottomImage

func WithBottomImage(image ImageProvider) BuildCubeImageOption

func WithDimension

func WithDimension(dimension int) BuildCubeImageOption

func WithFrontImage

func WithFrontImage(image ImageProvider) BuildCubeImageOption

func WithLeftImage

func WithLeftImage(image ImageProvider) BuildCubeImageOption

func WithRearImage

func WithRearImage(image ImageProvider) BuildCubeImageOption

func WithRightImage

func WithRightImage(image ImageProvider) BuildCubeImageOption

func WithTopImage

func WithTopImage(image ImageProvider) BuildCubeImageOption

type BuildCubeSideFromEquirectangularAction

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

func (*BuildCubeSideFromEquirectangularAction) Describe

func (*BuildCubeSideFromEquirectangularAction) Image

func (*BuildCubeSideFromEquirectangularAction) Run

type BuildIrradianceCubeImageAction

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

func (*BuildIrradianceCubeImageAction) CubeImage

func (a *BuildIrradianceCubeImageAction) CubeImage() *CubeImage

func (*BuildIrradianceCubeImageAction) Describe

func (a *BuildIrradianceCubeImageAction) Describe() string

func (*BuildIrradianceCubeImageAction) Run

type BuildIrradianceCubeImageOption

type BuildIrradianceCubeImageOption func(a *BuildIrradianceCubeImageAction)

func WithSampleCount

func WithSampleCount(count int) BuildIrradianceCubeImageOption

type BuildProgramAction

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

func (*BuildProgramAction) Describe

func (a *BuildProgramAction) Describe() string

func (*BuildProgramAction) Program

func (a *BuildProgramAction) Program() *Program

func (*BuildProgramAction) Run

func (a *BuildProgramAction) Run() error

type BuildProgramOption

type BuildProgramOption func(a *BuildProgramAction)

func WithFragmentShader

func WithFragmentShader(shader ShaderProvider) BuildProgramOption

func WithVertexShader

func WithVertexShader(shader ShaderProvider) BuildProgramOption

type Color

type Color struct {
	R float64
	G float64
	B float64
	A float64
}

type CubeImage

type CubeImage struct {
	Dimension int
	Sides     [6]CubeImageSide
}

func (*CubeImage) RGBA32FData

func (t *CubeImage) RGBA32FData(side CubeSide) []byte

func (*CubeImage) RGBA8Data

func (t *CubeImage) RGBA8Data(side CubeSide) []byte

func (*CubeImage) Scale

func (t *CubeImage) Scale(newDimension int) *CubeImage

func (*CubeImage) SideToImage

func (i *CubeImage) SideToImage(side CubeSide) *Image

func (CubeImage) TexelUVW

func (s CubeImage) TexelUVW(uvw dprec.Vec3) Color

type CubeImageProvider

type CubeImageProvider interface {
	CubeImage() *CubeImage
}

type CubeImageSide

type CubeImageSide struct {
	Texels [][]Color
}

func (CubeImageSide) Texel

func (s CubeImageSide) Texel(x, y int) Color

type CubeSide

type CubeSide int
const (
	CubeSideFront CubeSide = iota
	CubeSideRear
	CubeSideLeft
	CubeSideRight
	CubeSideTop
	CubeSideBottom
)

func UVWToCubeUV

func UVWToCubeUV(uvw dprec.Vec3) (CubeSide, dprec.Vec2)

type Described

type Described interface {
	Describe() string
}

type FileAssetLocator

type FileAssetLocator struct{}

func (FileAssetLocator) Create

func (FileAssetLocator) Create(uri string) (io.WriteCloser, error)

type FileResourceLocator

type FileResourceLocator struct{}

func (FileResourceLocator) Open

type GLTFDocument

type GLTFDocument struct {
	*gltf.Document
}

func (GLTFDocument) FindMesh

func (d GLTFDocument) FindMesh(index int) GLTFMesh

func (GLTFDocument) RootNodes

func (d GLTFDocument) RootNodes() []gltf.Node

type GLTFMaterial

type GLTFMaterial struct {
	gltf.Material
	// contains filtered or unexported fields
}

func (GLTFMaterial) FindBaseColor

func (m GLTFMaterial) FindBaseColor() (gltf.Color, bool)

func (GLTFMaterial) FindColorTexture

func (m GLTFMaterial) FindColorTexture() (string, bool)

func (GLTFMaterial) FindMetallic

func (m GLTFMaterial) FindMetallic() float32

func (GLTFMaterial) FindNormalTexture

func (m GLTFMaterial) FindNormalTexture() (string, float32, bool)

func (GLTFMaterial) FindRoughness

func (m GLTFMaterial) FindRoughness() float32

func (GLTFMaterial) FindRoughnessTexture

func (m GLTFMaterial) FindRoughnessTexture() (string, bool)

type GLTFMesh

type GLTFMesh struct {
	gltf.Mesh
	// contains filtered or unexported fields
}

func (GLTFMesh) FindPrimitive

func (m GLTFMesh) FindPrimitive(index int) GLTFPrimitive

type GLTFPrimitive

type GLTFPrimitive struct {
	gltf.Primitive
	// contains filtered or unexported fields
}

func (GLTFPrimitive) FindColor0

func (p GLTFPrimitive) FindColor0(index int) sprec.Vec4

func (GLTFPrimitive) FindCoord

func (p GLTFPrimitive) FindCoord(index int) sprec.Vec3

func (GLTFPrimitive) FindIndex

func (p GLTFPrimitive) FindIndex(index int) int

func (GLTFPrimitive) FindIndexCount

func (p GLTFPrimitive) FindIndexCount() int

func (GLTFPrimitive) FindMaterial

func (p GLTFPrimitive) FindMaterial() GLTFMaterial

func (GLTFPrimitive) FindMode

func (p GLTFPrimitive) FindMode() int

func (GLTFPrimitive) FindNormal

func (p GLTFPrimitive) FindNormal(index int) sprec.Vec3

func (GLTFPrimitive) FindTangent

func (p GLTFPrimitive) FindTangent(index int) sprec.Vec3

func (GLTFPrimitive) FindTexCoord0

func (p GLTFPrimitive) FindTexCoord0(index int) sprec.Vec2

type Image

type Image struct {
	Width  int
	Height int
	Texels [][]Color
}

func (*Image) BilinearTexel

func (i *Image) BilinearTexel(x, y float64) Color

func (*Image) IsSquare

func (i *Image) IsSquare() bool

func (*Image) RGBA8Data

func (i *Image) RGBA8Data() []byte

func (*Image) Scale

func (i *Image) Scale(newWidth, newHeight int) *Image

func (*Image) Texel

func (i *Image) Texel(x, y int) Color

func (*Image) TexelUV

func (i *Image) TexelUV(uv dprec.Vec2) Color

type ImageProvider

type ImageProvider interface {
	Image() *Image
}

type Level

type Level struct {
	SkyboxTexture            string
	AmbientReflectionTexture string
	AmbientRefractionTexture string
	StaticEntities           []LevelEntity
	StaticMeshes             []Mesh
	CollisionMeshes          []LevelCollisionMesh
}

type LevelCollisionMesh

type LevelCollisionMesh struct {
	Triangles []Triangle
}

type LevelEntity

type LevelEntity struct {
	Model  string
	Matrix sprec.Mat4
}

type LevelProvider

type LevelProvider interface {
	Level() *Level
}

type Material

type Material struct {
	Type             string
	BackfaceCulling  bool
	AlphaTesting     bool
	AlphaThreshold   float32
	Metalness        float32
	MetalnessTexture string
	Roughness        float32
	RoughnessTexture string
	Color            sprec.Vec4
	ColorTexture     string
	NormalScale      float32
	NormalTexture    string
}

type Mesh

type Mesh struct {
	Name        string
	VertexCount int
	Coords      []sprec.Vec3
	Normals     []sprec.Vec3
	Tangents    []sprec.Vec3
	TexCoords   []sprec.Vec2
	Colors      []sprec.Vec4
	IndexCount  int
	Indices     []int
	SubMeshes   []SubMesh
}

type Model

type Model struct {
	RootNodes []*Node
	Meshes    []*Mesh
}

type ModelProvider

type ModelProvider interface {
	Model() *Model
}

type Node

type Node struct {
	Name        string
	Translation sprec.Vec3
	Scale       sprec.Vec3
	Rotation    sprec.Quat
	Mesh        *Mesh
	Children    []*Node
}

func (*Node) Matrix

func (n *Node) Matrix() sprec.Mat4

type OpenGLTFResourceAction

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

func (*OpenGLTFResourceAction) Describe

func (a *OpenGLTFResourceAction) Describe() string

func (*OpenGLTFResourceAction) Model

func (a *OpenGLTFResourceAction) Model() *Model

func (*OpenGLTFResourceAction) Run

func (a *OpenGLTFResourceAction) Run() error

type OpenImageResourceAction

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

func (*OpenImageResourceAction) Describe

func (a *OpenImageResourceAction) Describe() string

func (*OpenImageResourceAction) Image

func (a *OpenImageResourceAction) Image() *Image

func (*OpenImageResourceAction) Run

func (a *OpenImageResourceAction) Run() error

type OpenLevelResourceAction

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

func (*OpenLevelResourceAction) Describe

func (a *OpenLevelResourceAction) Describe() string

func (*OpenLevelResourceAction) Level

func (a *OpenLevelResourceAction) Level() *Level

func (*OpenLevelResourceAction) Run

func (a *OpenLevelResourceAction) Run() error

type OpenShaderResourceAction

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

func (*OpenShaderResourceAction) Describe

func (a *OpenShaderResourceAction) Describe() string

func (*OpenShaderResourceAction) Run

func (*OpenShaderResourceAction) Shader

func (a *OpenShaderResourceAction) Shader() *Shader

type Packer

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

func NewPacker

func NewPacker() *Packer

func (*Packer) FPipeline

func (p *Packer) FPipeline(fn func(*Pipeline))

func (*Packer) Pipeline

func (p *Packer) Pipeline(fn func(*Pipeline))

func (*Packer) RunParallel

func (p *Packer) RunParallel()

func (*Packer) RunSerial

func (p *Packer) RunSerial()

type Pipeline

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

func (*Pipeline) BuildCubeImage

func (p *Pipeline) BuildCubeImage(opts ...BuildCubeImageOption) *BuildCubeImageAction

func (*Pipeline) BuildCubeSideFromEquirectangular

func (p *Pipeline) BuildCubeSideFromEquirectangular(side CubeSide, image ImageProvider) *BuildCubeSideFromEquirectangularAction

func (*Pipeline) BuildIrradianceCubeImage

func (p *Pipeline) BuildIrradianceCubeImage(image CubeImageProvider, opts ...BuildIrradianceCubeImageOption) *BuildIrradianceCubeImageAction

func (*Pipeline) BuildProgram

func (p *Pipeline) BuildProgram(opts ...BuildProgramOption) *BuildProgramAction

func (*Pipeline) OpenGLTFResource

func (p *Pipeline) OpenGLTFResource(uri string) *OpenGLTFResourceAction

func (*Pipeline) OpenImageResource

func (p *Pipeline) OpenImageResource(uri string) *OpenImageResourceAction

func (*Pipeline) OpenLevelResource

func (p *Pipeline) OpenLevelResource(uri string) *OpenLevelResourceAction

func (*Pipeline) OpenShaderResource

func (p *Pipeline) OpenShaderResource(uri string) *OpenShaderResourceAction

func (*Pipeline) SaveCubeTextureAsset

func (p *Pipeline) SaveCubeTextureAsset(uri string, image CubeImageProvider, opts ...SaveCubeTextureOption) *SaveCubeTextureAction

func (*Pipeline) SaveLevelAsset

func (p *Pipeline) SaveLevelAsset(uri string, level LevelProvider) *SaveLevelAssetAction

func (*Pipeline) SaveModelAsset

func (p *Pipeline) SaveModelAsset(uri string, model ModelProvider) *SaveModelAssetAction

func (*Pipeline) SaveProgramAsset

func (p *Pipeline) SaveProgramAsset(uri string, program ProgramProvider) *SaveProgramAssetAction

func (*Pipeline) SaveTwoDTextureAsset

func (p *Pipeline) SaveTwoDTextureAsset(uri string, image ImageProvider) *SaveTwoDTextureAssetAction

func (*Pipeline) ScaleCubeImage

func (p *Pipeline) ScaleCubeImage(image CubeImageProvider, dimension int) *ScaleCubeImageAction

type Primitive

type Primitive int
const (
	PrimitivePoints Primitive = iota
	PrimitiveLines
	PrimitiveLineStrip
	PrimitiveLineLoop
	PrimitiveTriangles
	PrimitiveTriangleStrip
	PrimitiveTriangleFan
)

type Program

type Program struct {
	VertexShader   *Shader
	FragmentShader *Shader
}

type ProgramProvider

type ProgramProvider interface {
	Program() *Program
}

type ResourceLocator

type ResourceLocator interface {
	Open(uri string) (io.ReadCloser, error)
}

type SaveCubeTextureAction

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

func (*SaveCubeTextureAction) Describe

func (a *SaveCubeTextureAction) Describe() string

func (*SaveCubeTextureAction) Run

func (a *SaveCubeTextureAction) Run() error

type SaveCubeTextureOption

type SaveCubeTextureOption func(a *SaveCubeTextureAction)

func WithFormat

func WithFormat(format asset.DataFormat) SaveCubeTextureOption

type SaveLevelAssetAction

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

func (*SaveLevelAssetAction) Describe

func (a *SaveLevelAssetAction) Describe() string

func (*SaveLevelAssetAction) Run

func (a *SaveLevelAssetAction) Run() error

type SaveModelAssetAction

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

func (*SaveModelAssetAction) Describe

func (a *SaveModelAssetAction) Describe() string

func (*SaveModelAssetAction) Run

func (a *SaveModelAssetAction) Run() error

type SaveProgramAssetAction

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

func (*SaveProgramAssetAction) Describe

func (a *SaveProgramAssetAction) Describe() string

func (*SaveProgramAssetAction) Run

func (a *SaveProgramAssetAction) Run() error

type SaveTwoDTextureAssetAction

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

func (*SaveTwoDTextureAssetAction) Describe

func (a *SaveTwoDTextureAssetAction) Describe() string

func (*SaveTwoDTextureAssetAction) Run

type ScaleCubeImageAction

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

func (*ScaleCubeImageAction) CubeImage

func (a *ScaleCubeImageAction) CubeImage() *CubeImage

func (*ScaleCubeImageAction) Describe

func (a *ScaleCubeImageAction) Describe() string

func (*ScaleCubeImageAction) Run

func (a *ScaleCubeImageAction) Run() error

type Shader

type Shader struct {
	Source string
}

type ShaderProvider

type ShaderProvider interface {
	Shader() *Shader
}

type SubMesh

type SubMesh struct {
	Primitive   Primitive
	IndexOffset int
	IndexCount  int
	Material    Material
}

type Triangle

type Triangle struct {
	A sprec.Vec3
	B sprec.Vec3
	C sprec.Vec3
}

Jump to

Keyboard shortcuts

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