[0]【cbuffer、shader】设置一个 纹理 全局变量给shader用,失败,求助。
//一个简单的 CommandBuffer使用
let viewPort: Laya.Viewport = this._camera.viewport;
this._camera.enableBuiltInRenderTexture = true;
let curRender = Laya.RenderTexture.createFromPool(viewPort.width, viewPort.height, Laya.RenderTextureFormat.R8G8B8, Laya.RenderTextureDepthFormat.DEPTHSTENCIL_NONE);
let lastRender = Laya.RenderTexture.createFromPool(viewPort.width, viewPort.height, Laya.RenderTextureFormat.R8G8B8, Laya.RenderTextureDepthFormat.DEPTHSTENCIL_NONE);
this._commonBuffer.blitScreenQuadByMaterial(null, curRender);
//这里设置了个Rt 这个RT是可以用的
this._commonBuffer.setShaderDataTexture(this._mat.shaderData, Laya.Shader3D.propertyNameToID("u_texture1"), curRender);
this._commonBuffer.blitScreenQuadByMaterial(curRender, null, new Laya.Vector4(0, 0, 0, 0), this._mat, 0)
this._camera.addCommandBuffer(Laya.CameraEventFlags.BeforeImageEffect, this._commonBuffer);
this._commonBuffer.blitScreenQuadByMaterial(null, lastRender);
// 这里设置了一个全局的 RT ,希望供我的shader使用
this._commonBuffer.setGlobalTexture(Laya.Shader3D.propertyNameToID("u_texture2"), lastRender);
Laya.RenderTexture.recoverToPool(curRender);
//shader FS
uniform vec3 u_CameraPos;
uniform sampler2D u_texture1;
uniform sampler2D u_texture2;
varying vec3 v_PositionWorld;
void main()
{
float x = v_PositionWorld.x * 0.5 + 0.5;
float y = v_PositionWorld.y * 0.5 + 0.5;
vec4 color1 = texture2D(u_texture1,vec2(x,y))*0.5;
//这里插入 我的 u_texture2 纹理2 出来的是 几个矩形色块,
vec4 color2 = texture2D(u_texture2,vec2(x+0.5,y-0.5))*0.5;
// vec4 color = color1+color2+color3+color4;
vec4 color =color1+color2;
gl_FragColor = vec4(color.xyz,1.0);
}
//另外
//所有的uniform属性
var uniformMap = {
'u_Bones': Laya.Shader3D.PERIOD_CUSTOM,//绑定
'u_CameraPos': Laya.Shader3D.PERIOD_CAMERA,
'u_MvpMatrix': Laya.Shader3D.PERIOD_SPRITE,
'u_WorldMat': Laya.Shader3D.PERIOD_SPRITE,
"u_texture1": Laya.Shader3D.PERIOD_MATERIAL,
"u_texture2": Laya.Shader3D.PERIOD_MATERIAL,
};
这个可是设置了。
没有其他操作了。
我觉得 纹理2 至少有图吧。
//我是准备做个动态模糊,准备用 前后 的 屏幕纹理,叠加一下,试一下, 纹理1 是当前 纹理2 是上一次。
//现在就关于纹理2的取用问题,我搞了半天。。。。
1、希望有大神指导一下。 感觉简单又处处出问题。不知道,纹理2怎么才能存到下次使用。
2、全局的这个设置纹理,我用得不对,希望有指导。
万分感谢
没有找到相关结果
已邀请:
要回复问题请先登录
1 个回复
189*****181
赞同来自: