func NewDebugWaterRenderer() *renderstuff.Renderer {
	program := helpers.MakeProgram3("Water.vs", "Normal.gs", "Line.fs")
	name := "Water Normals"
	renderer := renderstuff.NewRenderer(program, name, nil, WaterUpdate)
	renderer.OverrideModeToPoints = true
	return renderer
}
func NewHeightMapRenderer() *renderstuff.Renderer {
	return renderstuff.NewRenderer(
		helpers.MakeProgram("HeightMap.vs", "HeightMap.fs"),
		"height map",
		nil,
		HeightMapUpdate,
	)
}
func NewScreenQuadRenderer() (this *renderstuff.Renderer) {
	program := helpers.MakeProgram("ScreenQuad.vs", "ScreenQuad.fs")
	return renderstuff.NewRenderer(program, "ScreenQuad", nil, nil)
}
func NewMeshRenderer() (this *renderstuff.Renderer) {
	return renderstuff.NewRenderer(helpers.MakeProgram("Mesh.vs", "Mesh.fs"), "mesh", nil, nil)
}
func NewPortalRenderer() *renderstuff.Renderer {
	program := helpers.MakeProgram("Portal.vs", "Portal.fs")
	return renderstuff.NewRenderer(program, "Portal", nil, nil)
}
func NewSurfaceWaterRenderer() *renderstuff.Renderer {
	program := helpers.MakeProgram("Water.vs", "Water.fs")
	name := "Water"
	return renderstuff.NewRenderer(program, name, nil, WaterUpdate)
}
func NewTreeRenderer() *renderstuff.Renderer {
	program := helpers.MakeProgram("Sprite.vs", "Sprite.fs")
	return renderstuff.NewRenderer(program, "TreeSprite", nil, TreeUpdate)
}
func NewSkyboxRenderer() *renderstuff.Renderer {
	program := helpers.MakeProgram("Skybox.vs", "Skybox.fs")
	return renderstuff.NewRenderer(program, "Skybox", nil, nil)
}