123456848 发表于 2021-3-9 17:31

Unity的渲染相关问题?

Unity的渲染相关问题?

永远爱你冰塘 发表于 2021-3-9 17:40

1 maincamera 只是一个打了 tag的camera, 可以没有 ,这样 用到camera.main的代码就会失败
例如xffect的代码

2:setTargetBuffers 将 rendertexture的buffer设置为相机的渲染对象, 因此要获取buffer数据,需要将 对应的rendertexture 设置为active, 接着调用texture2d 的readpixels可以读取 colorbuffer里面的数据 到 texture2d里面, 参考GetPixels of RenderTexture
如果要读取 depthbuffer里面的数据 参考 Writing depth to render target
参考unity builtin shader 里面关于depthtexture 的shader以及CGInclude 里面的头文件,查看如何获得depthbuffer的数据

3:Graphics 是unity的底层API,Camera是Unity的上层API,Camera渲染的是相机自身看到的场景中的物体,而Graphics 直接操作的是 rendertexture,mesh,以及纹理texture,以及GPU生成的几何体这些对象的处理和渲染,两个操作的对象是不同的,两个API 所处的 游戏引擎 层级也是不同的。

4: camera.render 用于手动精确控制 渲染顺序,Unity - Scripting API: Camera.Render
例如想要对游戏中玩家对象渲染两次,第一次用正常Camera 渲染玩家模型,LateUpdate 函数里面 第二次用相同位置的另外一个camera,手动调用render再render一边模型。

例如想给主角加一个阴影,第二遍可以用replace shader渲染一下人物阴影,接着调整一下阴影的rendertexture的alpha值,接着用于地面混合一下,这样就可以制作出 动态实时 半透明阴影了。

只要disable掉 camera组件 就可以 关闭主动渲染。

向往草原403 发表于 2021-3-9 17:44

关于ReadPixels截图的问题?
我使用ReadPixels来将图片进行写入,但是当图片超出屏幕的时候,使用该方法则会报错:attempting to ReadPixels outside of RenderTexture bounds。
该如何获取比屏幕大的图片,来写入到Texture中
页: [1]
查看完整版本: Unity的渲染相关问题?