- Home /
How can I access a texture created through C# code (using Texture2D) in a unity shader as a sampler2D?
I want to access the texture "G" in my shader, and use it as a sampler 2D, so that I can access the RGBA values in my shader: how can I make sure I can use this texture G in my shader? In this case, both my shader and the create texture script (texture G) are attached to the same gameObject.
//Forexample, create the following Texture G
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class calculator : MonoBehaviour {
// Use this for initialization
void Start () {
Texture2D G = new Texture2D(128, 128);
GetComponent<Renderer>().material.mainTexture = G;
for (int y = 0; y < G.height; y++)
{
for (int x = 0; x < G.width; x++)
{
Color color = ((x & y) != 0 ? Color.white : Color.gray);
G.SetPixel(x, y, color);
}
}
G.Apply();
}
// Update is called once per frame
void Update () {
}
}
Answer by atozpp · May 31, 2018 at 08:10 AM
Hello @donutLaserDev, thanks for this insight. I actually had found this out but I am trying to create a texture look up table so that I can pass a stored value in the look-up texture to a 2D array in a shader. How could I pass these values and read them in the shader??? I will be grateful on your insignts. I am not sure if tex2D(SAMPLER2D, TEXCOORD) works that I have values stored in the pixels but not in texture coordinates.
Your answer
Follow this Question
Related Questions
Possible for a shader to have two decal slots? 2 Answers
Converting c# function to shader. 0 Answers
How to create a shader for a dynamic linear gradient 0 Answers
How do I fix repeating tiles ? 0 Answers
RenderTexture being wiped/changed on play or undo. 0 Answers