https://linen.dev logo
setBrightnessで明るさを変えたあと、もとの明るさに戻す
# forum
p
という動作を実装する方法を知っているかたや実装できた方はいますか? 前の会話では https://discord.com/channels/799152792518393917/801119713861435452/1044175093699444809 とかが提案されましたが、想像レベルじゃなく現実段階の資料があると助かります
u
setBrightnessの動作を完全に解析でききれていないので、助言となりうるかはわかりませんが 「特定のパーツのみにBrightness(ここでいう発光処理)を適用する」という操作をしたいなら、render関数に全て書かず、関数を呼び出して引数下ろせば、Brightnessの適用パーツを関数内のものに限定できるので、目的の動作は行えると思います(このコードでrender単体とどの程度負荷が変化するかまではまだ調べてない)
p
テクスチャ1枚の場合でしょうか? 私は関数内関係なく一回setBrightnessしちゃうとその後に描画されるすべてに影響が出ると理解していますが、0番材質の描画のときにで明るくしたら1番~も明るくなっちゃうと思います
u
ええ、おそらくそのように動作します 念のためお聞きしますが、特定のパーツにBrightnessをセットする時、getVehicleStateなどから「材質の値」のAND構成なども成されましたか? 俺は前以て光らせるオブジェクトはmqo側で分離してから動かしているため、いい答えとなりうるかわかりませんが おそらく1.12.2にも材質の値をとれる関数があり、特定の材質にマッチしたオブジェクトのみをマスキングできたと思います(最初の材質は0から値が始まり、型はおそらくintです)
p
そうできるところはそうしたつもりです。が、3年前の設計ミスが残っているので今更直そうとしても簡単ではなく、もしかしたら手っ取り早く出来る方法になるかなと聞いてみました
あと描画順番気にしながら作業するのも正直面倒くさいし(
u
そのまま開発続行するともっとスパゲティ化しそう(心配)
トラえもん氏かhi03氏過去に配布していた、NGTUtillClient(これクラス?)を含む関数のネストが、確かsetBrightnessを消せる仕様だった気もします 探してきます
1.12.2で代用の関数があるまでは確認していません・・・すみません
p
ほお
今は外出中なので帰宅したら試してみようかと思います
ありがとうございます
p
GLHelper.setBrightness(entity.func_70070_b()); です。
p
みなさんありがとうございます