1

私は通常これをnvidiaの開発者フォーラムに投稿しますが、先月のハッキングからまだオフラインです。誰かがこれらのタイプの質問のための別の良いコミュニティを知っているなら、私はそれらについて知りたいです。

私は人間の視覚をテストするために設計されたいくつかのソフトウェアを開発しています。現在、2つのテストを作成しています。1つはnvidiaの3Dビジョンv.2メガネを使用して立体画像を表示するテストで、もう1つは眼科医の診察室で見られるチャートと同様の文字を画面に表示するテストです。私の問題は、「チャートテスト」中に、3Dビジョンがトリガーされ、画面が暗く見えることです。さまざまなテストを実行する間、nvidiaコントロールパネルを介して3Dビジョンを有効または無効にすることができますが、それはあまり洗練されていないソリューションです。DX9とVisualBasicを使用してコードを開発しています。ステレオスコピックテストで3Dをトリガーするために、ここで説明するNV_STEREO_IMAGE_SIGNATUREメソッドを使用しています。。基本的に、この方法では、画面の幅の2倍のバックバッファーと、中央にピクセルデータの追加の列を作成します。ここに、ステレオイメージであり、バックバッファーの左半分が必要であることをビデオカードに通知する特別な署名を挿入します。左目に表示され、右半分が右目に表示されます。「チャートテスト」のコードではそれを何もしていませんが、3d Visionがまだトリガーされており、その理由がわかりません。コード内の3dVision機能を一時的に無効にするようにビデオカードに指示する方法はありますか?

ありがとう

4

1 に答える 1

1

私は自分の質問に対する解決策を見つけたかもしれないと思います。Nvidiaは、静的にロードでき、NVAPI_STEREO_ENABLEやNVAPI_STEREO_DISABLEなどの呼び出しを含むNVAPIと呼ばれるライブラリを提供します。NVAPIのダウンロードと情報はここにあります。ソリューションが完了したら、実際のコードの例を使用してこの投稿を編集します。

編集:C#/ Visual Basicでは.libファイルの静的ロードが許可されていないため、NVAPI.libファイルをラップするためにVisualC++を作成する必要がありました。libファイルを参照し、インクルードヘッダーファイルをラッパープロジェクトに追加した後、次のコードを記述しました。

#include "stdafx.h"
#include "nvapi.h"

public ref class NvApiWrapper
{   
public: 
    static bool NvApiWrapper_Initialize(){
    if (NvAPI_Initialize() == 0){
        return true;
    } else {
        return false;
    }
    }

    static bool NvApiWrapper_Stereo_Enable(){
    if (NvAPI_Stereo_Enable() == 0){
        return true;
    } else {
        return false;
    }
    }

    static bool NvApiWrapper_Stereo_Disable(){
    if (NvAPI_Stereo_Disable() == 0){
        return true;
    } else {
        return false;
    }
    }
};

私はこれらの2つのステレオメソッドにのみ興味があったので、他には何も追加しませんでしたが、呼び出すことができる興味深いメソッドがたくさんあります。他の呼び出しの前にNvAPI_Initialize()を呼び出す必要があります。

于 2012-08-16T13:36:05.687 に答える