Mojo2 properly using new texture in shader
Monkey Forums/Monkey Programming/Mojo2 properly using new texture in shader
| ||
| I was attempting to create a new texture slot in a material, but got a memory access violation. Not sure what was wrong. But if I just change the name to one of the existing slots such as NormalTexture it works fine and the shader works as I want it to. But I don't use the texture I loaded into the NormalTexture slot for normals, something else instead. M.SetTexture("PixelTexture", P) doesn't work M.SetTexture("NormalTexture", P) works uniform sampler2D PixelTexture; doesn't work uniform sampler2D NormalTexture; works All I'm doing is changing the names and it suddenly works... what else am I missing? The texture is loading fine. The code is all the same but I assume there's something more needed for other named textures? |
| ||
Found solution. It was missing proper initialization I suppose?
Class PixelShader Extends BumpShader
Private
Global _Instance:PixelShader
Public
Function Instance:PixelShader()
If (_Instance = Null) Then
_Instance = New PixelShader()
Endif
Return _Instance
End
Method New()
Build(LoadString("monkey://data/pixel.glsl"))
End
Method OnInitMaterial:Void(M:Material)
Super.OnInitMaterial(M)
M.SetTexture "PixelTexture", Texture.Flat()
Return
End
End
Key is M.SetTexture "PixelTexture", Texture.Flat() Then elsewhere M.SetTexture("PixelTexture", P) Properly works. |