• <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>

    什么是OpenGL挑選(OpenGL&reg; Picking)?

    OpenGL?picking在計算機編程中是指一旦場景被渲染,確定三維(3D)場景中的對象位于屏幕上給定點的過程。它也可以指在一個點或一個框內定位多個對象。通常,OpenGL?picking用于確定屏幕上的3D對象用戶正試圖用鼠標光標進行...
    OpenGL?picking在計算機編程中是指一旦場景被渲染,確定三維(3D)場景中的對象位于屏幕上給定點的過程。它也可以指在一個點或一個框內定位多個對象。通常,OpenGL?picking用于確定屏幕上的3D對象用戶正試圖用鼠標光標進行選擇。雖然此操作看起來很簡單,但OpenGL?渲染場景的方式有幾個微妙之處,會使場景變得相當復雜。此外,某些圖形卡和驅動程序中存在固有的問題,可能會導致OpenGL?拾取功能失敗并返回false結果:OpenGL拾取是指在一個三維場景中,當場景被渲染后,確定哪個對象位于屏幕上給定的點上的過程。當用戶在計算機監視器上觀看3D場景時,產生的圖像被稱為場景的渲染。場景實際上以原始形狀或多邊形的集合形式存儲在內存中,這些基本形狀或多邊形本身就是場景空間中三維點的集合。計算機使用世界坐標(有時稱為絕對坐標)來執行最基本的功能在大多數應用程序中,用戶可以將場景的視圖調到不同的角度,以便可以從不同的角度看到對象。用戶在場景中的虛擬位置稱為攝影機角度或攝影機位置。OpenGL?拾取的復雜性來自于從可能是場景中任意的位置和角度,攝像機的位置。另外,由于從人類觀眾的角度來看,渲染是真實的2D,用戶無法提供場景內部鼠標點擊的深度OpenGL?picking函數通過兩種方式解決了這個復雜的問題。第一種方法是,它不是執行一系列單獨的計算來轉換觀察者的抽象位置,然后在渲染窗口中找到一個對象,而是像正常工作時一樣渲染場景,除了不顯示用于選擇的渲染外,它只用于計算對象的正確位置。區別在于,它沒有渲染用戶可以看到的整個區域,它只渲染鼠標所在的區域,這意味著渲染的對象在技術上都是在鼠標指針所在的點上,第二個問題,即無法表示所選區域的深度,通過返回場景中鼠標坐標下的所有對象來解決。OpenGL拾取函數返回數組中的所有對象以及它們與查看器位置的距離。這允許程序在需要時快速找到最近的對象。可視化OpenGL?拾取的一種方法是想象線,在3D編程中有時被稱為光線,它從鼠標指針的位置移動到場景中,遠離觀看者的位置。光線接觸到的每個對象都被添加到一個對象數組中,以及它離觀看者的距離。這是一個非常簡單的解釋,解釋了一種形式的OpenGL?拾取是如何工作的。OpenGL?中的另一種對象拾取方法涉及到通過顏色定位對象,而且速度可以快得多。這種方法可以渲染場景,但不是對對象應用照明和紋理,而是對對象應用照明和紋理取而代之的是用一種簡單的顏色渲染。每個對象或一組對象都有自己不同的顏色。場景只在內存中渲染而不顯示,因此這不會影響用戶看到的內容而不是尋找對象之間的三維碰撞,而是返回鼠標光標所在位置的顏色,該顏色將與特定對象相關聯
    • 發表于 2020-08-07 20:30
    • 閱讀 ( 602 )
    • 分類:電腦網絡

    你可能感興趣的文章

    相關問題

    0 條評論

    請先 登錄 后評論
    admin
    admin

    0 篇文章

    作家榜 ?

    1. xiaonan123 189 文章
    2. 湯依妹兒 97 文章
    3. luogf229 46 文章
    4. jy02406749 45 文章
    5. 小凡 34 文章
    6. Daisy萌 32 文章
    7. 我的QQ3117863681 24 文章
    8. 華志健 23 文章

    推薦文章

    聯系我們:uytrv@hotmail.com 問答工具
  • <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>
    久久久久精品国产麻豆