前提・実現したいこと
現在,WebCameraから取得したImageを,Texture2D型に変換し,保持しています.
そのTexture2D型の画像をGameObjectのPlaneに
meshRenderer.material.SetTexture("_MainTex", texture2D);
したものと,
Canvasの中のrawImageに
rawImage.texture = texture2D;
したものの2つの方法で描画しました.
すると,同じTexture2D型の画像であるにも関わらず,色調が違うものが出力されてしまいます.
具体的に言うと,Planeに貼り付けた方は正常で,rawImageの方が黄色がかったような感じです.
同じ色で出力させたいのですが,解決策を知っている人はいらっしゃるでしょうか.
よろしくお願いします.
発生している問題・エラーメッセージ
エラーはありません.
該当のソースコード
C#
1meshRenderer.material.SetTexture("_MainTex", texture2D); 2(GameObjectのPlaneにアタッチされたスクリプト) 3と 4rawImage.texture = texture2D;
補足情報(FW/ツールのバージョンなど)
Unity 2018.1.0f
RawImageのMaterialやColorは変更していないのですよね?でしたら「Texture2D型に変換し」の部分のコードもご提示いただけますでしょうか。Planeでうまくいっているのでしたら、そこに問題はないかもしれませんが念のため...
回答ありがとうございます.MaterialやColorは初期のままです.Texture2Dへ変換している部分のソースコードを貼り付けます.改行の仕方が分からないので読みにくくなってしまいすみません... if (colors != null) { webcamTexture.GetPixels32 (colors); int width = webcamTexture.width; int height = webcamTexture.height; Color32 rc = new Color32(); for (int x = 0; x < width; x++) { for (int y = 0; y < height; y++) { Color32 c = colors [x + y * width]; byte gray = (byte)(0.1f * c.r + 0.7f * c.g + 0.2f * c.b); rc.r = rc.g = rc.b = gray; colors [x + y * width] = rc; } } texture.SetPixels32 (colors); texture.Apply (); }
回答1件
あなたの回答
tips
プレビュー