Qualcomm_Snapdragon_VR_SDK SvrEye脚本简介(8)
2018-03-09 11:37
375 查看
本文中将介绍SDK中SvrEye脚本Buffer相关的逻辑代码: void OnPreRender()
{
SwapBuffers();
if (OnPreRenderListener != null)
{
OnPreRenderListener();
}
}在SvrEye中的OnPreRender函数中包含了SwapBuffers方法,方法的作用是切换当前的buffer图像。
OnPreRender方法的作用是在程序运行周期中,每一帧图像渲染之前执行的方法。
而OnRreRenderListener定义为delegate类型,监听每一帧图像渲染前的执行事件。 public delegate void OnPreRenderCallback();
public OnPreRenderCallback OnPreRenderListener;SwapBuffers方法的具体实现如下:void SwapBuffers()
{
if (imageType != eType.RenderTexture) return;
currentTextureIndex = ++currentTextureIndex % bufferCount;
var targetTexture = eyeTextures[currentTextureIndex];
if (targetTexture == null) return;
for (int i = 0; i < mainCameras.Length; i++)
{
mainCameras[i].targetTexture = targetTexture;
}
targetTexture.DiscardContents();
}在这个方法中包含了几个关键的变量,其中bufferCount为当前应用的buffer数量,默认的bufferCount为3private const int bufferCount = 3;
currentTextureIndex为当前Buffer对应图像序列号,
private int currentTextureIndex = 0;
eyeTextures变量保存的是当前左右眼的图像RenderTexture, private RenderTexture[] eyeTextures = new RenderTexture[bufferCount];SwapBuffer通过计算currentextureIndex的值之后获取当前的targetTexture指针,赋值给目标Camera的targetTexture,进而完成左右眼图像Buffer的刷新。
{
SwapBuffers();
if (OnPreRenderListener != null)
{
OnPreRenderListener();
}
}在SvrEye中的OnPreRender函数中包含了SwapBuffers方法,方法的作用是切换当前的buffer图像。
OnPreRender方法的作用是在程序运行周期中,每一帧图像渲染之前执行的方法。
而OnRreRenderListener定义为delegate类型,监听每一帧图像渲染前的执行事件。 public delegate void OnPreRenderCallback();
public OnPreRenderCallback OnPreRenderListener;SwapBuffers方法的具体实现如下:void SwapBuffers()
{
if (imageType != eType.RenderTexture) return;
currentTextureIndex = ++currentTextureIndex % bufferCount;
var targetTexture = eyeTextures[currentTextureIndex];
if (targetTexture == null) return;
for (int i = 0; i < mainCameras.Length; i++)
{
mainCameras[i].targetTexture = targetTexture;
}
targetTexture.DiscardContents();
}在这个方法中包含了几个关键的变量,其中bufferCount为当前应用的buffer数量,默认的bufferCount为3private const int bufferCount = 3;
currentTextureIndex为当前Buffer对应图像序列号,
private int currentTextureIndex = 0;
eyeTextures变量保存的是当前左右眼的图像RenderTexture, private RenderTexture[] eyeTextures = new RenderTexture[bufferCount];SwapBuffer通过计算currentextureIndex的值之后获取当前的targetTexture指针,赋值给目标Camera的targetTexture,进而完成左右眼图像Buffer的刷新。
相关文章推荐
- Qualcomm_Snapdragon_VR_SDK SvrEye脚本简介(2)
- Qualcomm_Snapdragon_VR_SDK SvrEye脚本简介(3)
- Qualcomm_Snapdragon_VR_SDK SvrEye脚本简介(9)
- Qualcomm_Snapdragon_VR_SDK SvrEye脚本简介(6)
- Qualcomm_Snapdragon_VR_SDK SvrEye脚本简介(4)
- Qualcomm_Snapdragon_VR_SDK SvrEye脚本简介(5)
- Qualcomm_Snapdragon_VR_SDK SvrEye脚本简介(7)
- Qualcomm_Snapdragon_VR_SDK SvrEye脚本简介(1)
- Qualcomm_Snapdragon_VR_SDK SvrManager脚本简介(2)
- Qualcomm_Snapdragon_VR_SDK SvrPluginAndroid脚本简介(6)
- Qualcomm_Snapdragon_VR_SDK SvrPlugin脚本简介(5)
- Qualcomm_Snapdragon_VR_SDK SvrManager脚本简介(4)
- Qualcomm_Snapdragon_VR_SDK SvrManager脚本简介(6)
- Qualcomm_Snapdragon_VR_SDK SvrPlugin脚本简介(6)
- Qualcomm_Snapdragon_VR_SDK SvrPlugin脚本简介(7)
- Qualcomm_Snapdragon_VR_SDK SvrPlugin脚本简介(1)
- Qualcomm_Snapdragon_VR_SDK SvrPluginAndroid脚本简介(1)
- Qualcomm_Snapdragon_VR_SDK SvrManager脚本简介(5)
- Qualcomm_Snapdragon_VR_SDK SvrPluginAndroid脚本简介(3)
- Qualcomm_Snapdragon_VR_SDK SvrPluginAndroid脚本简介(2)