日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

OSG系统的学习

發布時間:2024/1/1 windows 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OSG系统的学习 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

環境變量
OSG_GL_ERROR_CHECKING=ON/OFF開啟或關閉OpenGL錯誤檢查
OSG_FILE_PATH=<dir>OSG數據目錄
OSG_NOTIFY_LEVEL=ALWAYS/FATAL/WARN/NOTICE/DEBUG_INFO/DEBUG_FP/DEBUG/INFO日志輸出級別
OSG_DEFAULT_BIN_SORT_MODE=SORT_BY_STATE/SORT_BY_STATE_THEN_FRONT_TO_BACK/SORT_FRONT_TO_BACK/SORT_BACK_TO_FRONT/TRAVERSAL_ORDERRenderBin默認實現

名詞理解

  • Windowing System 窗口系統:Linux下的X11等
  • Graphics Context 圖形上下文:描述一個繪圖區域(或窗口)上下文
  • Window 窗口,窗口系統中的一個窗口
  • Scene 場景

類型

  • osg::Referenced 負責內存安全策略(同侵入式shared_ptr)
  • osg::Object 負責對象安全策略,如IO操作、復制操作
  • osg::State OpenGL狀態機
  • osg::Camera 相機
  • osg::View 負責狀態與相機
  • osgViewer::ViewerBase 負責渲染線程
  • osgViewer::View 負責場景的數據加載和事件處理
  • osgGA::GUIActionAdapter 負責與操作系統UI的交互

分頁管理
相機
注意:相機擁有繼承邏輯,相機在嵌套時,有些邏輯需要注意,比如ClearMask

  • osg::CullSettings::getInheritanceMask
  • osg::CullSettings::getInheritanceMaskActionOnAttributeSetting
  • osg::Camera::setClearMask …
  • osg::Camera::applyMaskAction

注意:相機不能擁有多個父親

  • osgUtil::CullVisitor::apply
  • osgUtil::RenderStageCache::getRenderStage

HUD(head up display)相機
RTT(render to texture)相機
創建RTT相機

著色器
啟用osg矩陣、啟用osg頂點屬性綁定

  • osg::GraphicsContext::getState
  • osg::State::setUseModelViewAndProjectionUniforms
  • osg::State::getUseVertexAttributeAliasing

默認屬性綁定
location(默認)?? ?var(osg user use)?? ?replace(auto)
osg_FrameNumber?? ?
osg_FrameTime?? ?
osg_DeltaFrameTime?? ?
osg_SimulationTime?? ?
osg_DeltaSimulationTime?? ?
osg_ViewMatrix?? ?
osg_ViewMatrixInverse?? ?
ftransform()?? ?gl_ModelViewProjectionMatrix * gl_Vertex
gl_ModelViewMatrix?? ?osg_ModelViewMatrix
gl_ModelViewProjectionMatrix?? ?osg_ModelViewProjectionMatrix
gl_ProjectionMatrix?? ?osg_ProjectionMatrix
gl_NormalMatrix?? ?osg_NormalMatrix
0?? ?gl_Vertex?? ?osg_Vertex
1?? ?gl_Normal?? ?osg_Normal
2?? ?gl_Color?? ?osg_Color
3?? ?gl_MultiTexCoord0?? ?osg_MultiTexCoord0
4?? ?gl_MultiTexCoord1?? ?osg_MultiTexCoord1
5?? ?gl_MultiTexCoord2?? ?osg_MultiTexCoord2
6?? ?gl_MultiTexCoord3?? ?osg_MultiTexCoord3
7?? ?gl_MultiTexCoord4?? ?osg_MultiTexCoord4
8?? ?gl_MultiTexCoord5?? ?osg_MultiTexCoord5
9?? ?gl_MultiTexCoord6?? ?osg_MultiTexCoord6
10?? ?gl_MultiTexCoord7?? ?osg_MultiTexCoord7
11?? ?gl_SecondaryColor?? ?osg_SecondaryColor
12?? ?gl_FogCoord?? ?osg_FogCoord
StateSet
RenderBinDetail
RenderBin::addRenderBinPrototype 可以添加自定義的
RenderBin::setDefaultRenderBinSortMode 設置默認
RenderBin
DepthSortedBin
RenderingHint
DEFAULT_BIN INHERIT_RENDERBIN_DETAILS 0 “”
OPAQUE_BIN USE_RENDERBIN_DETAILS 0 “RenderBIn”
TRANSPARENT_BIN USE_RENDERBIN_DETAILS 10 “DepthSortedBin”
RenderBinMode
OVERRIDE_RENDERBIN_DETAILS
紋理格式
注意
osg默認會對讀取的Image進行縮放(長寬為2的次冪),底層(3.4)使用了gluScaleImage,它同時會對數據進行歸一化這里提到。禁止這種行為:osg::Texture::setResizeNonPowerOfTwoHint

osg的裁剪設置默認不包括遠近裁剪面osg::CullSettings::DEFAULT_CULLING

  • StateGraph狀態圖
  • 根據StateSet Instance 產生
  • RenderStage渲染臺
  • 隨相機生成
  • RenderBin渲染柜
  • 根據StateSet Instance 和其 BinNumber 生成
  • 其他
  • osg的矩陣是列優先存儲的,但乘法是按行優先的邏輯 - -!
  • GL_TEXTURE_CUBE_MAP_SEAMLESS 立方紋理邊界優化

問題
為什么camera near far 不起作用?
存在自動計算機制。禁止這種行為:osg::Camera::setComputeNearFarMode
為什么子相機接受了Viewport resize事件
附屬相機(slave)會接受resize事件。
TextureBuffer使用時的invalid enumerant
使用osg::StateSet::setTextureAttribute而不是osg::StateSet::setTextureAttributeAndModes
粒子
動畫
————————————————
版權聲明:本文為CSDN博主「chudonghao」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_24654009/article/details/105129701

總結

以上是生活随笔為你收集整理的OSG系统的学习的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。