更新:これは一部のコンピューターでのみ問題になるようです。通常の直感的なコードは、自宅のコンピューターでは正常に機能しているように見えますが、職場のコンピューターには問題があります。
自宅のコンピューター:(問題なし)
- Windows XP Professional SP3
- AMD Athlon 64X23800+デュアルコア2.0GHz
- NVIDIA GeForce 7800 GT
- 2 GB RAM
仕事用コンピューター:(この質問はこのコンピューターに適用されます)
- Windows XP Professional SP3
- Intel Pentium 4 2.8 Ghz(デュアルコアだと思います)
- Intel82945GExpressチップセットファミリ
- 1 GB RAM
元の投稿:
次のコードでMatlabのPsychtoolboxを使用して、画面の一部に非常に単純なテクスチャを適用しようとしています。
win = Screen('OpenWindow', 0, 127); % open window and obtain window pointer
tex = Screen('MakeTexture', win, [255 0;0 255]); % get texture pointer
% draw texture. Args: command, window pointer, texture pointer, source
% (i.e. the entire 2x2 matrix), destination (a 100x100 square), rotation
% (none) and filtering (nearest neighbour)
Screen('DrawTexture', win, tex, [0 0 2 2], [100 100 200 200], 0, 0);
Screen('Flip', win); % flip the buffer so the texture is drawn
KbWait; % wait for keystroke
Screen('Close', win); % close screen
今、私はこれ(4つの同じサイズの正方形)を見ることを期待します:
しかし、代わりに私はこれを取得します(右側と下側が切り取られ、左上の正方形が大きすぎます):
明らかに、宛先の長方形はソースの長方形よりもはるかに大きいため、テクスチャを拡大する必要があります。私はこれが最初の写真のように対称的に起こることを期待します、そしてこれは私が必要とするものでもあります。なぜこれが起こらないのですか、そして私はそれについて何ができますか?
また、[128 0 1152 1024]を宛先の長方形として使用してみました(画面中央の正方形であるため)。この場合、すべての辺が1024であるため、関係する各長方形は2の累乗になります。これは役に立ちません。チェッカーボードのサイズを大きくすると、同様の状況が発生し、右側と最下部が正しく表示されません。
私が言ったように、私はPsychtoolboxを使用していますが、それが内部でOpenGLを使用していることを知っています。私もOpenGLについてはよく知りませんが、Matlabを知らなくても助けてくれる人がいるかもしれません。知らない。
御時間ありがとうございます!