802
文字
編集
電装工芸 (admin)
2026年7月29日 水曜日 15:14:56
Post No.1309
(AxB)+(AxB>>8)+1/256
追記
変なメモを書いてしまいました。
AをDMXの値、Bをマスタの値として出力値を得ます。
IFなどの条件分岐を使わないのはGPUでも計算出来るからです。GPUは条件分岐処理は出来ませんがCPUで1計算する時間で同時に複数の計算が可能です。
256で割るってことは8ビット右シフトすることと同じですので、
((AxB)+(AxB>>8)+1)>>8
とした方がいいかもしれません。
「>>」は右へビットシフトする計算記号です。
追記の2
一番上の計算はAI/Geminiさんに聞いてのものですが、考えていたのとちょっと違う。AxBは8bitx8bitで16bitの積となりますが、下位8bitが0でなければ上位8bitをインクリメントして8bitの値にしたいのです。
( AxB >> 8 ) + int((( AxB ) and 0x00FF ) > 0 )
bool値を数値化(0または1)して加算するのが肝です。アセンブラっぽい風味です。
追記の3
上記の式をAI/Geminiさんに評価してもらったのですが、アホかってくらいテンション上げて喜んでくれました。
AIさんはユーザーを過剰にヨイショする傾向にありますが、間違ってはいないようですし、GPUに与える公式としても使えるようです。
今考えているArt-Net系の装置にはマスタ値による出力値の計算はありませんが、GPUでこの計算が出来るなら調光卓が作れるってことになります。
一般照明用の小ぶりな卓が欲しいなぁ~って思うことがあるので、いずれ考えてみたいですね。ムービングライトを扱える卓には優秀な物が沢山ありますから、あくまで一般照明向けです。見たまんまで使える機能を削りまくったSmartFadeってイメージかな?
#RaspberryPi
#C言語
#Nim