質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

0回答

1273閲覧

Unity のComputeShaderの変数定義について

seri

総合スコア422

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2017/06/24 00:04

編集2017/06/24 00:09
#pragma kernel btn_attack #pragma kernel btn_attacktwo #pragma kernel btn_tettai #pragma kernel main #pragma kernel submain RWStructuredBuffer<Bullet> buff1; RWStructuredBuffer<Bullet> buff2; float DeltaTime; float Time; float stagewidth; float count; float unico; [numthreads(8, 1, 1)] void btn_attack(uint3 id : SV_DispatchThreadID){} [numthreads(8, 1, 1)] void btn_attacktwo(uint3 id : SV_DispatchThreadID){} [numthreads(8, 1, 1)] void btn_tettai(uint3 id : SV_DispatchThreadID) {} [numthreads(8, 1, 1)] void main(uint3 id : SV_DispatchThreadID) {} [numthreads(8, 1, 1)] void submain(uint3 id : SV_DispatchThreadID) {}

このようなComputeShaderを定義した際、C#から

cs.SetBuffer(cs.FindKernel("btn_attack"), "buff1", buff1); cs.SetBuffer(cs.FindKernel("btn_attacktwo"), "buff1", buff1); cs.SetBuffer(cs.FindKernel("btn_tettai"), "buff1", buff1); cs.SetBuffer(cs.FindKernel("main"), "buff1", buff1); cs.SetBuffer(cs.FindKernel("submain"), "buff1", buff1); cs.SetBuffer(cs.FindKernel("btn_attack"), "buff2", buff2); cs.SetBuffer(cs.FindKernel("btn_attacktwo"), "buff2", buff2); cs.SetBuffer(cs.FindKernel("btn_tettai"), "buff2", buff2); cs.SetBuffer(cs.FindKernel("main"), "buff2", buff2); cs.SetBuffer(cs.FindKernel("submain"), "buff2", buff2); cs.SetFloat("DeltaTime", Time.deltaTime); cs.SetFloat("Time", Time.time); cs.SetFloat("stagewidth", 6f); float count= hoge.count; float unico=huge.count; cs.SetFloat("count", count); cs.SetFloat("unico", unico);

とした際、countとunicoとゆう変数がmainでは使えるのですがsubmainでは使えず0の値が入ってしまいます。
変数定義の際、何か失敗をしていると思うのですが何が原因でしょうか?

ちなみにカーネルの定義を以下のようにした場合は、countとunicoとゆう変数はsubmainで使えてmainでは使えなくなります。

#pragma kernel btn_attack #pragma kernel btn_attacktwo #pragma kernel btn_tettai #pragma kernel submain #pragma kernel main

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問