当前位置: 首页 > news >正文

VR的左右眼渲染方法

VR的左右眼视频渲染shader

unity_StereoEyeIndex 结点可以判断当前渲染的时候左眼还是右眼,所以可以通过着色器来更根据当前眼睛使用不同的渲染方式达到左右眼渲染不同。

Shader "Unlit/VRVideoPlay"
{Properties{_MainTex ("Texture", 2D) = "white" {}[KeywordEnum(None, Top_Bottom, Left_Right, Custom_UV)] Stereo ("Stereo Mode", Float) = 0[KeywordEnum(None, Left, Right)] ForceEye ("Force Eye Mode", Float) = 0}SubShader{Tags { "RenderType"="Opaque" }LOD 100Pass{CGPROGRAM#pragma vertex vert#pragma fragment frag#pragma multi_compile MONOSCOPIC STEREO_TOP_BOTTOM STEREO_LEFT_RIGHT STEREO_CUSTOM_UV#pragma multi_compile_local FORCEEYE_NONE FORCEEYE_LEFT FORCEEYE_RIGHT#include "UnityCG.cginc"struct appdata{float4 vertex : POSITION;float2 uv : TEXCOORD0;};struct v2f{float2 uv : TEXCOORD0;float4 vertex : SV_POSITION;};sampler2D _MainTex;float4 _MainTex_ST;float2 SetVR_UV(float2 UV){#if FORCEEYE_NONE// 左右采样#if STEREO_LEFT_RIGHTif (unity_StereoEyeIndex == 0){return float2(UV.x / 2, UV.y);}else{return float2(UV.x / 2 + 0.5, UV.y);}#endif// 上下采样#if STEREO_TOP_BOTTOMif (unity_StereoEyeIndex == 0){return float2(UV.x, UV.y / 2);}else{return float2(UV.x, UV.y / 2 + 0.5);}#endif#elif FORCEEYE_LEFT// 左右采样#if STEREO_LEFT_RIGHTreturn float2(UV.x / 2, UV.y);#endif// 上下采样#if STEREO_TOP_BOTTOMreturn float2(UV.x, UV.y / 2);#endif#elif FORCEEYE_RIGHT// 左右采样#if STEREO_LEFT_RIGHTreturn float2(UV.x / 2 + 0.5, UV.y);#endif// 上下采样#if STEREO_TOP_BOTTOMreturn float2(UV.x, UV.y / 2 + 0.5);#endif#endifreturn UV;}v2f vert (appdata v){v2f o;o.vertex = UnityObjectToClipPos(v.vertex);float2 uv = TRANSFORM_TEX(v.uv, _MainTex);o.uv=SetVR_UV(uv);return o;}fixed4 frag (v2f i) : SV_Target{// sample the texturefixed4 col = tex2D(_MainTex, i.uv);return col;}ENDCG}}
}

http://www.mrgr.cn/news/68553.html

相关文章:

  • 08 反射与注解
  • 【Linux】解锁操作系统潜能,高效线程管理的实战技巧
  • vue3使用easy-player播放hls监控流
  • AIGC--如何在内容创作中合理使用AI生成工具?
  • 1 天通关 AWS AI 认证,AWS AI 从业者证书最强考试指南
  • LangChain 快速入门
  • 信息安全工程师(83)Windows操作系统安全分析与防护
  • 淘宝商品详情API大揭秘:用Python开启探险之旅
  • 自动驾驶中,2d图像目标检测(分割),融合激光雷达点云信息
  • ChatGLM2-6B微调记录【1】
  • 【计网不挂科】计算机网络期末考试——【选择题&填空题&判断题&简述题】题库(2)
  • ​解决‌win11无法打开msi安装程序包的方法‌
  • AI预测体彩排3采取888=3策略+和值012路+胆码+通杀1码测试11月8日升级新模型预测第128弹
  • 虚假新闻检测:CSV格式数据集的预处理与模型选择
  • 改变财务规划思维方式,迎接创新技术新时代
  • 数据分析的力量如何驱动商业决策和创新发展
  • 文件系统和日志管理 附实验:远程访问第一台虚拟机日志
  • 基于Springboot+Vue的网上拍卖系统 (含源码数据库)
  • 如何简化App Store提现?——作为游戏开发者的跨境收款体验分享
  • openGauss 一主一备 从5.0 LTS 版本升级至 6.0 LTS 版本实战