投稿
おちゃめ ochame_nako
Miiverse初投稿です。 実質32階調表示のプチコン3号で擬似的に256階調表示を可能にするGRAY関数を作ってみました。公開キー23N3434J
22そうだね
プレイ済み
返信[1]
親投稿
あーなるほど! リストみて唸ってしまった
0そうだね
プレイ済み
返信[2]
親投稿
おちゃめ ochame_nako
あんへるたんさんへ やっていることは大したことではないんですよね(笑) 書き忘れましたが、上記の公開キーによるリストでは昨日twitterで公開した旧バージョンがGRAY()、今回の新バージョンがGRAY2()となっていますが旧バージョンを使うメリットは全く無いので削除しても良いでしょう。
0そうだね
プレイ済み
返信[3]
親投稿
あーやっぱり32階調しか出てなかったんですね。 ささっとグラデにしたつもりがガタガタで256のはずなのになーと思ったものの時間がなくてあまり深く考えてなかった! 参考にさせて頂きます。
0そうだね
プレイ済み
返信[4]
親投稿
おちゃめ ochame_nako
もっさんさんへ プチコン3号では色指定はRGB各8bitで指定できますが、内部では各5bit(8の倍数の数字)に丸められています。したがって、GSPOITを使って当たり判定を行う場合に表示の指定色と読み取った色を比較する際には異なった値を返すため正しく判定ができない恐れがあり注意する必要があります。 例:RGB(255,248,250)で色指定した場合には内部ではRGB(248,248,248)になっている。
0そうだね
プレイ済み
返信[5]
親投稿
お、お、おちゃめさん!? mk2の時に結構参考になりました! 3号でもお願いします! Miiかわいいですね^^
1そうだね
プレイ済み
返信[6]
親投稿
そうみたいですねー。 塗った(つもりの)色と拾う色が違うような話は他所でも耳にしてましたが、こういうマニュアルと実装に差のある部分は仕様としてオープンになってると助かりますね。
0そうだね
プレイ済み
返信[7]
親投稿
おちゃめ ochame_nako
Newあっキーさんへ 私の拙い講座等を参考にしていただいているようでどうもです。 ちなみにMiiは私の自画像(?)がモデルです。 もっさんさんへ 細かい仕様まで正確に公表するのは難しいからでしょうね。 分かったことは私のWebサイトの方でまとめていこうと思います。 http://ochameclub.web.fc2.com/petitcom3/
0そうだね
プレイ済み
返信[8]
親投稿
bigslope bigslope
ベーマガの常連の方でしたね。
0そうだね
プレイ済み
返信[9]
親投稿
UDADTO udamasahisa
おちゃめさん!? Twitterの投稿を見てました。名前は、MGウッディーと言います。(今は利用制限で兄弟の3DSを借りて投稿していますが) これからもよろしくお願いします。
0そうだね
未プレイ
返信[10]
親投稿
MGウッディー udatomoki_rinzi
質問です。ポリゴン表示の時に便利な数学の公式はありますか? もしあれば、教えてください。
0そうだね
未プレイ
返信[11]
親投稿
おちゃめ ochame_nako
bigslopeさんへ 当時すでにBASICを10数年使っていましたので投稿した作品はすべて掲載されました(笑) MGウッディー3さんへ 主に必要な数学の公式は回転をさせるためには回転行列の公式、ポリゴンの裏表の判断やシェーディングを行うのにベクトルの内積や外積が必要なことくらいですかね。 ポリゴンではなくワイヤーフレームならば格段に簡単になるので私はまずはワイヤーフレームのプログラムを作るのをオススメします。 ワイヤーフレームならばモデルの回転処理を行わない場合は四則演算のみで作ることが可能です。
0そうだね
プレイ済み
返信[12]
親投稿
MGウッディー udatomoki_rinzi
 回転処理を行わずにワイヤーフレームで作るとき、四則演算で作れるといいましたよね。  できれば立方体でもいいので、教えてくれると幸いです。
0そうだね
未プレイ
返信[13]
親投稿
おちゃめ ochame_nako
ワイヤーフレームのサンプルブログラムを即興で作ってみました。
2そうだね
プレイ済み
返信[14]
親投稿
おちゃめ ochame_nako
スライドパッドでカメラ位置を上下左右に動かし、Aボタンでモデルに近づき、Bボタンでモデルから離れます。 現在は立方体モデルのみですが、24行の頂点データ、25行のワイヤーのインデックスデータを書き換えれば自由なモデルを自由なカメラ位置で見ることができます。モデルの形式は私がmkIIで作ったポリゴン表示プログラムと同一なのでモデルの作り方や他のモデルのデータはそちらを参考にしてください。
0そうだね
プレイ済み
返信[15]
親投稿
おちゃめ ochame_nako
ちなみにワイヤーフレームの計算に関する部分は15~18行のみです。モデルの3次元空間のX、Y座標をカメラのあるZ座標で割っているだけという非常にシンプルなものです。
0そうだね
プレイ済み
返信[16]
親投稿
おちゃめ ochame_nako
動作確認をしてみたらスライドパッドによるカメラ移動のY方向の座標が逆でした(初歩的なミス・・・笑) 13行はCY=CY+Yに変更してください。
0そうだね
プレイ済み
返信[17]
親投稿
MGウッディー udatomoki_rinzi
とりあえず、-32とかが連続するDATA文は中央の基準座標(0,0,0)の相対座標は理解できましたが、 下の12,0,1,1…とかのDATA文の意味は…
0そうだね
未プレイ
返信[18]
親投稿
おちゃめ ochame_nako
インデックスデータの方は最初の12は結ぶ線の数(要するに立方体の辺の数)を示し、頂点番号0~7のどの頂点とどの頂点とを結ぶかというデータを羅列しています。「0,1」というデータで「頂点0と頂点1を結ぶ」という意味になります。
1そうだね
プレイ済み
返信[19]
親投稿
MGウッディー udatomoki_rinzi
あ。わかりました。線で繋ぐ始点配列要素と、その終点配列要素ですよね。
0そうだね
未プレイ
返信[20]
親投稿
あ、今更なんですけど、この空、GRAY関数みたいに滑らかに出来ますか?
0そうだね
プレイ済み
返信[21]
親投稿
ちなみにリストは、こんな感じです。
0そうだね
プレイ済み
返信[22]
親投稿
おちゃめ ochame_nako
GRAY関数と同様にR,G,Bを微調整してなめらかに見えるようにするという試みを行ってのですが、RGBの変化量が小さいため微調整をしたらかえって不自然なグラデーションになってしまいました。 タイルパターンや誤差拡散のような手法の方が良い結果を得られるかもしれません。 要するにドットの密度でグラデーションっぽくするわけです。
0そうだね
プレイ済み
返信[23]
親投稿
なるほど、 インクジェットみたいにするってことですね♪ 大変そう。 うん。そこまでする必要はないから諦めよう!
0そうだね
プレイ済み
返信[24]
親投稿
ヨッシー okkun2002
こういう風に改造したら、どんな色でも滑らかに出来ますか?
0そうだね
プレイ済み
返信[25]
親投稿
おちゃめ ochame_nako
ヨッシーさんへ その改造をしてもあまり意味はありません。 このGRAY関数の原理はR、G、Bは同じ値でも輝度が異なる(Gは輝度が高く、Bは低い)というのを利用して同じ値ずつ変化させるのではなく見た目の輝度がよりなめらかに変化するようにしているだけです。 したがって、グレー以外の色ではなめらかに変化するようには作られていません。
0そうだね
プレイ済み
返信[26]
親投稿
ヨッシー okkun2002
そうなんですか。 グレー以外の色も、できたらいいですね。 RGB的に使えると便利なのでこのままにしてみます。
0そうだね
プレイ済み