Initialer Upload neues Unity-Projekt
This commit is contained in:
40
Assets/SteamVR/Scripts/SteamVR_SphericalProjection.cs
Normal file
40
Assets/SteamVR/Scripts/SteamVR_SphericalProjection.cs
Normal file
@ -0,0 +1,40 @@
|
||||
//======= Copyright (c) Valve Corporation, All rights reserved. ===============
|
||||
//
|
||||
// Purpose: Applies spherical projection to output.
|
||||
//
|
||||
//=============================================================================
|
||||
|
||||
using UnityEngine;
|
||||
|
||||
[ExecuteInEditMode]
|
||||
public class SteamVR_SphericalProjection : MonoBehaviour
|
||||
{
|
||||
static Material material;
|
||||
|
||||
public void Set(Vector3 N,
|
||||
float phi0, float phi1, float theta0, float theta1, // in degrees
|
||||
Vector3 uAxis, Vector3 uOrigin, float uScale,
|
||||
Vector3 vAxis, Vector3 vOrigin, float vScale)
|
||||
{
|
||||
if (material == null)
|
||||
material = new Material(Shader.Find("Custom/SteamVR_SphericalProjection"));
|
||||
|
||||
material.SetVector("_N", new Vector4(N.x, N.y, N.z));
|
||||
material.SetFloat("_Phi0", phi0 * Mathf.Deg2Rad);
|
||||
material.SetFloat("_Phi1", phi1 * Mathf.Deg2Rad);
|
||||
material.SetFloat("_Theta0", theta0 * Mathf.Deg2Rad + Mathf.PI / 2);
|
||||
material.SetFloat("_Theta1", theta1 * Mathf.Deg2Rad + Mathf.PI / 2);
|
||||
material.SetVector("_UAxis", uAxis);
|
||||
material.SetVector("_VAxis", vAxis);
|
||||
material.SetVector("_UOrigin", uOrigin);
|
||||
material.SetVector("_VOrigin", vOrigin);
|
||||
material.SetFloat("_UScale", uScale);
|
||||
material.SetFloat("_VScale", vScale);
|
||||
}
|
||||
|
||||
void OnRenderImage(RenderTexture src, RenderTexture dest)
|
||||
{
|
||||
Graphics.Blit(src, dest, material);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user