锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久男人Av资源网站无码软件 ,久久久久一级精品亚洲国产成人综合AV区,久久久噜噜噜久久中文字幕色伊伊http://www.shnenglu.com/init/category/17182.htmlGraphics|EngineDev|GameDev|2D&3D Art zh-cnSat, 17 Oct 2020 10:53:03 GMTSat, 17 Oct 2020 10:53:03 GMT60VS2008涓嬬紪鍐橯T紼嬪簭鐜璁劇疆http://www.shnenglu.com/init/archive/2015/08/22/211652.html鎯呯粷鏍艱皟(fresmaster)鎯呯粷鏍艱皟(fresmaster)Sat, 22 Aug 2015 06:55:00 GMThttp://www.shnenglu.com/init/archive/2015/08/22/211652.htmlhttp://www.shnenglu.com/init/comments/211652.htmlhttp://www.shnenglu.com/init/archive/2015/08/22/211652.html#Feedback0http://www.shnenglu.com/init/comments/commentRss/211652.htmlhttp://www.shnenglu.com/init/services/trackbacks/211652.html涓銆佺幆澧冮厤緗?/font>

     鐢╒S鏂板緩涓涓獁in32鎺у埗鍙板簲鐢ㄧ▼搴?鎴戜滑鍋囪宸ョ▼鍚嶄負錛欻ello銆?

 

     閫夋嫨宸ュ叿->閫夐」->欏圭洰鍜岃В鍐蟲柟妗?>VC++鐩綍銆?/font>

         (1)  閫夋嫨“鍙墽琛屾枃浠?#8221;錛屽湪閲岄潰娣誨姞錛欳:\Qt4.7.0\bin;

         (2)  閫夋嫨“鍖呭惈鏂囦歡”錛屽湪閲岄潰娣誨姞錛欳:\Qt4.7.0\include;   C:\Qt4.7.0\include\Qt;   C:\Qt4.7.0\include\QtCore;   C:\Qt4.7.0\include\QtGui

         (3)  閫夋嫨“搴撴枃浠?#8221;錛屽湪閲岄潰娣誨姞錛欳:\Qt4.7.0\lib錛?

 

浜屻佸紑濮嬬紪紼?

   1.     閫夋嫨鑿滃崟涓婄殑“QT”閫夐」- >“Launch Designer” ,鍚姩designer : 鏀懼叆涓涓?#8220;label”,鍐呭鍐欎負錛歨elloQT銆傜劧鍚庝繚瀛樹負Hello.ui錛屽啀灝嗗畠娣誨姞鍒版簮鏂囦歡涓?/font>

           鍙沖嚮“Hello.ui”->“灞炴?#8221;->“鑷畾涔夌敓鎴愭楠?#8221;錛?/font>

           鍛戒護琛岋細uic.exe Hello.ui -o HelloUi.h

           杈撳嚭錛欻elloUi.h

           闄勫姞渚濊禆欏癸細uic.exe; Hello.ui

           鐒跺悗錛岀偣鍑?#8220;紜畾”銆傝繖鏃跺啀鍙沖嚮“Hello.ui”錛岄夋嫨“緙栬瘧”錛屽垯浼氱敓鎴怘elloUi.h銆傚皢瀹冩坊鍔犲埌宸ョ▼涓?/font>

    2.   鍦℉ello.cpp涓紪鍐欎唬鐮侊細

    3.   閫夋嫨“欏圭洰”錛?#8220;Hello灞炴?#8221;錛?#8220;閰嶇疆灞炴?#8221;錛?/font>

           (1)  “甯歌”錛氶夋嫨“瀛楃闆?#8221;涓?#8220;浣跨敤澶氬瓧鑺傚瓧絎﹂泦”錛?/font>

           (2)  “璋冭瘯”錛氬~鍐?#8220;鐜”鍊間負錛歅ATH=C:\Qt4.7.0\bin錛?/font>

                         濉啓“鍚堝茍鐜”鍊間負錛氭槸錛?/font>

           (3)  “閾炬帴鍣?#8221;錛氳繘鍏?#8220;甯歌”閫夐」錛屽~鍐?#8220;闄勫姞搴撶洰褰?#8221;涓猴細C:\Qt4.7.0\lib;

                            榪涘叆“杈撳叆”閫夐」錛屽~鍐?#8220;闄勫姞渚濊禆欏?#8221;涓猴細qtcore4.lib qtgui4.lib

                           錛堟敞鎰忥紝榪欎袱涓簱涔嬮棿涓虹┖鏍鹼紝涓嶈兘鍐欓楀彿錛?/font>

                                                                                                                                                                                                                                                               

  • 淇″彿鍜屾Ы
  •     淇″彿signals鐨勫0鏄庢槸澶存枃浠朵腑榪涜鐨勶紙妲界殑澹版槑涔熷湪澶存枃浠朵腑澹版槑錛屽悓鏃惰鍦ㄧ被澹版槑鐨勫紑濮嬪鍔犱笂Q_OBJECT璇彞錛岃繖灝嗗憡璇夌紪璇戝櫒鍦ㄧ紪璇戜箣鍓嶅繀欏葷敤moc宸ュ叿榪涜鎵╁睍錛夛紝騫朵笖moc    宸ュ叿浼氭敞鎰忎笉瑕佸皢淇″彿瀹氫箟鍦ㄥ疄鐜版枃浠朵腑錛屼嬌鐢╯ignals鍏抽敭瀛楁爣紺轟俊鍙峰0鏄庡尯錛岄殢鍚庡彲澹版槑鑷繁鐨勪俊鍙楓?/font>

         淇″彿signals娌℃湁public\private\protected絳夊睘鎬э紝榪欑偣涓嶅悓浜巗lots銆?/font>

         淇″彿signals鐨勮繑鍥炲間負void   

         妲絪lots鏈塸ublic slots銆乸rivate slots銆乸rotected slots (鏂規(guī)硶)

         淇″彿signals/浜嬩歡->錛堥┍鍔級妲絪lots/鏂規(guī)硶

     

  • 鍏冨璞?/font>
  • QT鐨勫厓瀵硅薄緋葷粺涓篞T鎻愪緵浜嗗璞¢棿閫氫俊鐨勪俊鍙蜂笌妲芥満鍒躲佸疄鏃剁被鍨嬩俊鎭佸姩鎬佸睘鎬х郴緇熺瓑鏂歸潰鐨勫姛鑳姐?/font>

           鍏冨璞$郴緇熷湪QT涓富瑕佹湁浠ヤ笅涓変釜閮ㄥ垎鏋勬垚錛歈Object綾匯丵_OBJECT瀹忋佸厓瀵硅薄緙栬瘧鍣╩oc

     

       3.vs涓璔T鏄劇ず涓枃錛?/font>

          #include <QTextCodec>

         QTextCodec::setCodecForTr(QTextCodec::codecForName("gb18030"));

         QFont font("Times",12,QFont::Normal,FALSE);

         app.setFont(font);

          QTextCodec::setCodecForTr(QTextCodec::codecForName("gb18030"));

         //QFont font("Times",12,QFont::Normal,FALSE);

         //a.setFont(font);

     

        4.QAction綾?/font>鐨勭敤娉?/font>

        1銆丵Action::QAction ( const QString & text, QObject * parent )

              QAction綾葷殑鏋勯犲嚱鏁頒箣涓錛屽埄鐢╰ext錛宲arent鍒涘緩QAction瀵硅薄銆俀Action瀵硅薄涓鑸負鑿滃崟涓殑鑿滃崟欏癸紝姣斿 "鏂囦歡"鑿滃崟涓?鏂板緩"閫夐」灝辨槸涓涓猀Action瀵硅薄錛?/font>

             涓婅堪鏋勯犲嚱鏁頒腑text鎴愬憳鍙橀噺       鍗充負鑿滃崟欏規(guī)墍琛ㄧず鐨勫唴瀹?/font>

             鐢ㄦ硶錛歈Action *newAction = new QAction(tr("&New"),this);

        2銆乿oid QAction::setIcon ( const QIcon & icon )

              璇ュ嚱鏁板彲璁劇疆鑿滃崟欏瑰悕縐板墠鐨勫浘鏍?/font>

              鐢ㄦ硶錛歯ewAction->setIcon(QIcon(":/images/new.png"));

        3銆乿oid QAction::setShortcut ( const QKeySequence & shortcut );

              璁劇疆QAction瀵硅薄鎵ц鐨勫揩鎹烽敭

              鐢ㄦ硶錛歯ewAction->setShortcut(tr("Ctrl+N"));

         4銆乿oid QAction::setStatusTip ( const QString & statusTip );

               璁劇疆褰撻紶鏍囩Щ鍔ㄥ埌“鍔ㄤ綔”涓婃椂錛岀姸鎬佹爮鏄劇ず鐨勬彁紺鴻銆?/font>

         5銆乿oid QAction::setVisible ( bool );

              璁劇疆“鍔ㄤ綔”鏄劇ず涓庡惁錛屽綋褰㈠弬涓簍rue鏄紝“鍔ㄤ綔”琛ㄧず銆?/font>

         6銆乿oid QAction::triggered ( bool checked = false ) [signal]

              姝ゅ嚱鏁頒負淇″彿錛屽綋鐢ㄦ埛瑙﹀彂姝?#8220;鍔ㄤ綔”鏃訛紝姝や俊鍙峰彂灝勩備緥濡傜敤鎴風偣鍑諱簡鑿滃崟涓殑鑿滃崟欏圭瓑銆?/font>

              姝ゅ嚱鏁頒竴鑸敤娉曚負錛氬湪QObject::connect錛堬級鍑芥暟涓綔涓轟俊鍙峰弬鏁幫紝鐢ㄤ簬瑙﹀彂“鍔ㄤ綔”鎵瀵瑰簲鎵ц鐨勬Ы鍑芥暟——瀹炵幇“鍔ㄤ綔”鐨勫姛鑳藉嚱鏁幫紝渚嬪錛?#8220;鏂板緩”鎸夐挳琚敤鎴鋒寜涓嬶紝

             鎵闇瑕佺殑鍔熻兘鍙兘      鏄柊寤轟竴涓枃妗o紝閭d箞鏂板緩涓涓枃妗g殑鍔ㄤ綔灝卞湪榪欎釜妲藉嚱鏁頒腑瀹炵幇銆傝嚦浜庢淇″彿鍑芥暟涓殑褰㈠弬鏆傛椂鍙互蹇界暐銆備互鍚庝細鍦ㄤ粙緇峇Object綾諱腑鐨勯潤鎬佹柟娉昪onnect()鍑芥暟鏃惰緇嗚В璇淬?/font>

          7銆乿oid QAction::setCheckable ( bool );

             姝ゅ嚱鏁扮敤浜庤緗甉Action綾諱腑鐨勭鏈夊彉閲忥細 bool checkable 錛屾灞炴х敤浠ユ彁渚?#8220;鍔ㄤ綔”鏄惁涓哄閫夊姩浣滐紝渚嬪Qt Creator涓?#8220;鎺т歡”鑿滃崟涓殑“鍏ㄥ睆”鑿滃崟欏瑰嵆涓哄閫夊姩浣?/font>

    鑿滃崟

        5  QMainWindow綾?/font>鐢ㄦ硶

      1銆乿oid QMainWindow::setCentralWidget ( QWidget * widget );

          姝ゆ柟娉曚綔鐢ㄤ負璁劇疆浼犲叆閮ㄤ歡涓轟富紿楀彛甯冨眬鐨勪腑蹇冮鍩熼儴浠躲備紶鍏ラ儴浠跺彲涓轟換鎰忕殑閮ㄤ歡鎴朡Widget綾葷殑瀛愮被閮ㄤ歡銆傚浜?#8220;閮ㄤ歡”榪欎釜璇嶇殑鐞嗚В鍙互鐞嗚В涓烘煇鏈哄櫒涓婄殑涓涓灪涓濄佷竴涓厤浠剁瓑絳夛紝鍏跺疄閮ㄤ歡灝辨槸铻轟笣鍜屾煇閰嶄歡鐨勪竴涓娊璞℃劅蹇靛槢錛屼粬浠兘鍙仛閮ㄤ歡錛屼絾鏄嵈鏈夌潃涓嶅悓鐨勪綔鐢ㄥ拰褰㈢姸銆備互鍚庝細閬囧埌寰堝綾葷戶鎵縌Widget綾葷殑銆傜浉淇″ぇ瀹墮兘姣旂瑪鑰呰仾鏄庯紝鎴栬鎴戞槸鍦ㄨ浜涘簾璇濓紝鍛靛懙銆?/font>

          涓句緥錛?/font>

               鍦ㄨ嚜瀹氫箟鐨勭戶鎵夸簬QMainWindow鐨勬潵鏋勯犲嚱鏁伴噷闈細

                 QTableWidget *table = new QTableWidget錛?nbsp;    //QTableWidget緇ф壙浜嶲Widget綾伙紱

                setCentralWidget(table);

         2銆乿oid  QMainWindow::setWindowIcon ( const QIcon & icon );

          璁劇疆紿楀彛宸︿笂瑙掑浘鏍囷紝鏀寔PNG銆丅MP銆丟IF銆丗PEG銆丳NM銆乆BM銆乆PM鏍煎紡鏂囦歡銆?/font>

          涓涓嬩負鍑犵GUI搴旂敤紼嬪簭鎻愪緵璧勬簮鐨勬柟娉曪細

                ①灝嗗浘鐗囧瓨鍏ユ枃浠訛紝鍦ㄧ▼搴忚繍琛屾椂鍔犺澆

                ②灝哫PM鏂囦歡鍖呭惈鍦ㄦ簮紼嬪簭涓紝鍥犱負XPM鏂囦歡鏄湁鏁堢殑C++鏂囦歡

                ③浣跨敤Qt鐨勮祫婧愭満鍒?#8212;———姝ょ鏂瑰紡涓嶄粎浠呮敮鎸佸浘鐗囨牸寮忔枃浠訛紝鑰屼笖鏀寔浠諱綍鏍煎紡鐨勬枃浠?/font>

         3銆丵MenuBar *QMainWindow::menuBar() const;

          姝ゆ柟娉曡繑鍥炰竴涓富紿楀彛鐨勮彍鍗曟爮瀵硅薄鎸囬拡銆傚鏋滃湪璋冪敤姝ゆ柟娉曟椂錛屼富紿楀彛涓嶅瓨鍦ㄨ彍鍗曟爮錛屽垯姝ゆ柟娉曚細鍒涘緩涓涓┖鐨勮彍鍗曟爮銆傚湪Mac搴旂敤紼嬪簭涓紝濡傛兂鍦ㄥ涓富紿楀彛涔嬮棿鍏變韓涓涓彍鍗曟爮錛屽垯闇瑕佷嬌鐢≦MenuBar *menuBar = new QMenuBar(0);褰㈠紡鍒涘緩鑿滃崟鏍忥紝鍗沖垱寤轟竴涓棤鐖墮儴浠剁殑鑿滃崟鏍忓璞°?/font>

          榪欓噷瑙i噴涓涓嬩粈涔堝彨鍋氱埗閮ㄤ歡錛屽垵瀛︿竴瀹氬榪欎釜姒傚康涓嶇悊瑙o紝榪欓噷鐨勭埗閮ㄤ歡涓嶆槸C++涓被鐨勭戶鎵垮叧緋伙紝鑰屾槸閮ㄤ歡涓庨儴浠剁殑鍏崇郴銆傛垜涔熸槸瀛︿範浜嗕竴孌墊椂闂存墠鎱㈡參鎮(zhèn)熷嚭榪欓噷闈㈢殑閬撶悊鐨勩傛垜鐪嬬殑鏄奀++ GUI Programming with Qt 4銆嬭嫳鏂囧師鐗堬紝鏈潵鐞嗚В璧鋒潵灝辨湁浜涢殰紕嶏紝鍐嶉亣鍒拌繖鏍鋒柊鐨勬蹇佃瘝姹囷紝鏇存槸涓嶇煡鍏舵墍浜戙備負浠涔堢湅鑻辨枃鍘熺増涔﹀憿錛屼釜浜鴻寰楀浗鍐呯炕璇戠殑涓嶆槸寰堝埌浣嶏紝鍙兘鍦ㄦ煇涓湴鏂規(guī)垨鍏抽敭鐐圭粰鎴戦犳垚璇錛岃矊浼兼壇榪滀簡銆傘傘傚嵆璇磋鐖墮儴浠舵槸涓粈涔堜笢瑗匡紝鐜板湪涓哄ぇ瀹舵墦涓瘮鏂癸紝涓寮犵數(shù)鑴戞鐢卞涓儴浠舵瀯鎴愶紝濡傛闈紝妗屽瓙鑵匡紝鎶藉眽絳夌瓑錛屾娊灞変笂闈㈡湁鎶藉眽鎶婃墜錛岄偅涔堟娊灞夊氨鏄娊灞夋妸鎵嬬殑鐖墮儴浠訛紝鐢?shù)鑴戞灏辨槸鎶藉眽鐨勭垑檭ㄤ欢銆傜浉淇¤繖鏍瘋В閲婏紝澶у涓瀹氬氨浼氱悊瑙d簡銆?/font>

         4銆丵ToolBar * QMainWindow::addToolBar ( const QString & title );

          姝ゅ嚱鏁頒負閲嶈澆鍑芥暟錛屽叾浣欎袱涓負宸插垱寤轟簡宸ュ叿鏍?QToolBar)瀵硅薄鏃訛紝灝嗗伐鍏鋒爮瀵硅薄娣誨姞鍒癚MainWindow瀵硅薄涓備笅闈㈠氨浼氶┈涓婂垪鍑鴻繖涓や釜綾繪柟娉曘傚湪璋冪敤姝ゆ柟娉曟椂錛屼細鍒涘緩涓涓猀ToolBar瀵硅薄錛岃繑鍥炶繖涓璞$殑鎸囬拡錛屽茍鍦ㄤ富紿楀彛欏墮儴宸ュ叿鏍忓尯鍩熶腑鏄劇ず銆?/font>

        5銆乿oid QMainWindow::addToolBar ( Qt::ToolBarArea area, QToolBar * toolbar );

          涓庝笂涓嚱鏁版瀯鎴愰噸杞藉叧緋伙紝姝ゅ嚱鏁扮浜屼釜褰㈠弬涓哄凡瀹氫箟濂界殑宸ュ叿鏍忓璞℃寚閽堬紝絎竴涓艦鍙傚伐鍏鋒爮琛ㄧず鐨勪綅緗紝姝ゅ艦鍙備負鏋氫婦鍨嬪彉閲忋?/font>

          宸ュ叿鏍忚〃紺轟綅緗叡4縐嶏紝鍗沖乏鍙充笂涓嬶細

            (1) Qt::LeftToolBarArea      0x1

            (2) Qt::RightToolBarArea     0x2

            (3) Qt::TopToolBarArea       0x4

            (4) Qt::BottomToolBarArea  0x8

        6銆乿oid QMainWindow::addToolBar ( QToolBar * toolbar );

          涓庤皟鐢?addToolBar(Qt::TopToolBarArea, toolbar) 鏂規(guī)硶鏁堟灉鐩稿悓錛屽嵆璋冪敤 addToolBar(Qt::TopToolBarArea, toolbar) 鏂規(guī)硶錛屽伐鍏鋒爮鏄劇ず鍖哄煙榛樿涓轟富紿楀彛欏墮儴銆?/font>

        7銆丵StatusBar *QMainWindow::statusBar() const;

          褰撲富紿楀彛鐘舵佹爮涓嶅瓨鍦ㄦ椂錛屽垱寤虹姸鎬佹爮錛屽茍榪斿洖鐘舵佹爮瀵硅薄鎸囬拡銆備竴鑸湪鑷畾涔塓MainWindow瀛愮被鐨勬瀯閫犲嚱鏁版椂浣跨敤錛屽垱寤虹姸鎬佹爮瀵硅薄銆傚垱寤哄悗錛屾坊鍔燪Label瀵硅薄錛屼互鏄劇ず涓葷獥鍙g姸鎬佹垨鑿滃崟鏍忎腑鎸夐挳鐨勭姸鎬佹彁紺恒?/font>

    鐩鎬俊閫氳繃3銆?銆?銆?銆?銆丵MainWindow綾繪柟娉曠殑瀛︿範錛屽ぇ瀹跺簲璇ユ帉鎻′簡鍒涘緩鑿滃崟鏍忥紝宸ュ叿鏍忓拰鐘舵佹爮鐨勬柟娉曘傞氬父鐨勪富紿楀彛涓鑸篃灝遍渶瑕佽繖浜涗笢瑗夸簡銆備絾瑕佹兂璁╄彍鍗曟爮錛屽伐鍏鋒爮浠ュ強鐘舵佹爮鑳芥湁鑷繁鐨勫姩浣滄垨琛屼負錛岃繕闇瑕佸叾浠栫被鐨勯厤鍚堜嬌鐢ㄣ傚ぇ瀹朵笉鐢ㄦワ紝QMainWindow綾葷畝鍗曚粙緇嶅畬姣曚箣鍚庯紝浼氫粙緇嶈繖浜涚浉鍏崇殑綾誨強鍏朵嬌鐢ㄦ柟娉曘?/font>

        8銆乿oid QMainWindow::setWindowModified(bool);

          褰撴鍑芥暟褰㈠紡鍙傛暟涓簍rue鏃訛紝鍗寵緗簡WindowModified灞炴т負true錛屾剰鎬濅負琛ㄦ槑鍏堢紪杈戠殑鏂囨。鏈夋洿鏂幫紝榪欐椂錛孮t浼氳嚜鍔ㄦ洿鏂版爣棰樻爮錛孧ac OS X 緋葷粺涓婂湪涓葷獥鍙g殑鍏抽棴鎸夐挳涓婂皢鍑虹幇涓涓彉鏇寸殑鏍峰紡錛屽叾浠栫郴緇熸垨騫沖彴涓婁細鍦ㄤ富紿楀彛鏍囬鏍忕殑鏂囦歡鍚嶅悗澶氭樉紺轟竴涓?#8220;*”銆?/font>

     

    void MainWindow::open()
    {
        QDialog *dialog = new QDialog;
        dialog->setAttribute(Qt::WA_DeleteOnClose);
        dialog->setWindowTitle(tr("Hello, dialog!"));
        dialog->show();

     

    void MainWindow::open()
    {
        QDialog dialog(this);
        dialog.setWindowTitle(tr("Hello, dialog!"));
        dialog.exec();
    }

     

     



    ]]>
    glAlphaFunc in OpenGL ES2.0http://www.shnenglu.com/init/archive/2012/11/19/195387.html鎯呯粷鏍艱皟(fresmaster)鎯呯粷鏍艱皟(fresmaster)Mon, 19 Nov 2012 14:28:00 GMThttp://www.shnenglu.com/init/archive/2012/11/19/195387.htmlhttp://www.shnenglu.com/init/comments/195387.htmlhttp://www.shnenglu.com/init/archive/2012/11/19/195387.html#Feedback0http://www.shnenglu.com/init/comments/commentRss/195387.htmlhttp://www.shnenglu.com/init/services/trackbacks/195387.htmlIn OpenGL ES 2.0 glAlphaFunc isn't available, you have to implement it in a fragment shader. There isn't a lot of reference out there for this (not that I could find anyway) so I thought I'd write this up.

    It's actually quite simple to implement a quick alpha test. I needed to be able to cookie cut out sprites and fonts so I simply needed to reject fragments where the alpha value was zero. Here are the guts of a shader to do this:

    #ifdef GL_ES 
    precision highp float;
    #endif 
    uniform sampler2D u_tex0; 
    uniform bool u_alphatestenable; 
    varying vec2 v_texCoord;
    varying vec4 v_color;
    void main(){ 
        //calculate the fragment color based on the texture and the vertex colour
        vec4 basecolor = texture2D( u_tex0, v_texCoord ) * v_color;
    
        //if testing is enabled, check the alpha component and discard if zero      
        if(u_alphatestenable){ 
            if(basecolor.a == 0.0){ 
                //throw this fragment away
                discard;
            }
        }
        gl_FragColor = basecolor;
    }

     

    You need to set up a uniform variable u_alphatestenable which enables the alpha test. If you want to support different test types ( less than, greater than etc) then you will need two more uniform variables: one for the test type and one for the value to test against.

    int uni_alphatest_enable = glGetUniformLocation(mProgram, "u_alphatestenable"); 
    bool alphateston = true; 
    glUniform1i(uni_alphatest_enabl

     

    note that you shouldn't call glGetUniformLocation every frame, it should be cached somewhere.
    It's quite simple and while you may be thinking oh that is so slow it not that bad. It's faster then the fixed function pipeline which is doing tests for alpha, lights, blend modes etc. If you get paranoid then you can create multiple shaders that support different subsets of features. All you need to be careful of is the cost of calling glSetProgram (to switch shaders) which can be expensive and cause bubbles in the vertex pipeline in the hardware.



    ]]>
    Gamma Correctionhttp://www.shnenglu.com/init/archive/2012/11/15/195246.html鎯呯粷鏍艱皟(fresmaster)鎯呯粷鏍艱皟(fresmaster)Thu, 15 Nov 2012 15:05:00 GMThttp://www.shnenglu.com/init/archive/2012/11/15/195246.htmlhttp://www.shnenglu.com/init/comments/195246.htmlhttp://www.shnenglu.com/init/archive/2012/11/15/195246.html#Feedback1http://www.shnenglu.com/init/comments/commentRss/195246.htmlhttp://www.shnenglu.com/init/services/trackbacks/195246.html
    image

    鍦ㄨ綆楁満鍥懼艦瀛﹂鍩熸椂甯稿惉鍒癵amma correction 錛実amma correction 鎺у埗浜嗗浘鍍忔暣浣撶殑浜害錛宺eproduce colors涔熼渶瑕乬amma correction鐨勪竴浜涚悊璁虹煡璇嗭紝gamma correction涓嶄粎浠呮槸鎺у埗浜嗗浘鍍忕殑浜害錛岃屼笖榪樻帶鍒朵簡RGB鍚勪釜鍒嗛噺鐨勬瘮渚嬶紝鎴戜滑鐭ラ亾娓叉煋鍣ㄦ槸綰挎х殑錛岃屾樉紺哄櫒騫墮潪綰挎э紝鍏跺疄鐢?shù)瀛愭墦鍦ㄥ睆骞曚笂浠庤屼駭鐢熶寒鐐癸紝鐢?shù)瀛愮殑杩愬姩鍙楃數(shù)鍘嬫帶鍒跺Q岃繖涓よ呮槸鎸囨暟鍏崇郴鐨勶紝鎵浠ヤ駭鐢熺殑浜害涔熻窡鐢?shù)鍘嬫垚鎸囨暟鍏尘p伙紝鑰屽彂閫佺粰鏄劇ず鍣ㄧ殑voltages鑼冨洿鏄?~1錛?/font>

    image

    image

    瀵逛簬鎴戜滑杈撳叆鐨勫浘鍍忥紝濡傛灉鐩存帴鏄劇ず錛岄偅涔堝氨浼氱瘒鏆楋紝鏍規(guī)嵁宸茬煡鐢?shù)鍘嬩笌鏄窘C轟寒搴︾殑鍏崇郴錛岃繘琛実amma correction 錛屽叾瀹炲氨鏄gamma鏇茬嚎鐨勪慨姝c備竴鑸敓浜у巶瀹朵笉鍔犺鏄庯紝浠栦滑鐨勪冀鐮佸煎ぇ綰︾瓑浜?.5.

    image

    image

    浠g爜錛?/p>

       gammaCorrection = 1 / gamma
       colour = GetPixelColour(x, y)
       newRed   = 255 * (Red(colour)   / 255) ^ gammaCorrection
       newGreen = 255 * (Green(colour) / 255) ^ gammaCorrection
       newBlue  = 255 * (Blue(colour)  / 255) ^ gammaCorrection
       PutPixelColour(x, y) = RGB(newRed, newGreen, newBlue)

    鐭ラ亾monitor涓嶆槸涓涓嚎鎬х殑錛岄偅涔堟垜浠湪榪涜棰滆壊鍔犳硶鏃訛紝鎴戜滑寰楀埌鐨勯鑹插茍涓嶆槸鐪熸鐨勯鑹插肩殑鐩稿姞錛屾瘮濡俫amma factor鏄?.2

    red = add (r1, r2);

    red= add (0.235,0.156);

    瀵逛簬涓涓嚎鎬ц澶囷紝red = 0.391,瀵逛簬鏈粡淇鐨刴ontior red=0.126;

    鍥犱負鏈変竴涓箓鍑芥暟鐨勮繍綆楋細C_out = C_in2.2

    鐜板湪浣跨敤gamma correction :C_corrected= C_out1.0/2.2

    0.3912.2 = 0.126

    0.1261.0/2.2 = 0.39

    鎴戜滑鐪嬪埌浣跨敤浼界爜鏍℃浠ュ悗鎴戜滑鑳藉緱鍒版垜浠鎯崇殑棰滆壊鍊?.39.

     

    imageimage

     

    imageimage

     

    imageimage

     

     

    There are two ways to do gamma correction:

    • Using the renderer. The renderer (the graphics card or GPU) is a linear device. Modern renderers have the support of gamma correction via sRGB textures and framebuffer formats. See the following OpenGL extensions for more details: GL_ARB_framebuffer_sRGB and GL_EXT_texture_sRGB. With these extensions you can get gamma corrected values for free but gamma correction factor is set to 2.2. You can鈥檛 change it.
    • Using a software gamma correction. The gamma correction is applied to the final scene buffer thanks to apixel shader and you can set the gamma correction you want.

    In OpenGL, using GL_ARB_framebuffer_sRGB is really simple: once your FBO is bound, just enable the sRGB space with

    glEnable(GL_FRAMEBUFFER_SRGB);
     
    gamma-correction


    ]]>
    Hemi-Sphere Lightinghttp://www.shnenglu.com/init/archive/2012/09/18/191143.html鎯呯粷鏍艱皟(fresmaster)鎯呯粷鏍艱皟(fresmaster)Tue, 18 Sep 2012 11:27:00 GMThttp://www.shnenglu.com/init/archive/2012/09/18/191143.htmlhttp://www.shnenglu.com/init/comments/191143.htmlhttp://www.shnenglu.com/init/archive/2012/09/18/191143.html#Feedback0http://www.shnenglu.com/init/comments/commentRss/191143.htmlhttp://www.shnenglu.com/init/services/trackbacks/191143.html闃呰鍏ㄦ枃

    ]]>
    杈愬皠璁¢噺姒傚康http://www.shnenglu.com/init/archive/2012/09/18/191130.html鎯呯粷鏍艱皟(fresmaster)鎯呯粷鏍艱皟(fresmaster)Tue, 18 Sep 2012 08:50:00 GMThttp://www.shnenglu.com/init/archive/2012/09/18/191130.htmlhttp://www.shnenglu.com/init/comments/191130.htmlhttp://www.shnenglu.com/init/archive/2012/09/18/191130.html#Feedback0http://www.shnenglu.com/init/comments/commentRss/191130.htmlhttp://www.shnenglu.com/init/services/trackbacks/191130.html闃呰鍏ㄦ枃

    ]]>
    Light Mappinghttp://www.shnenglu.com/init/archive/2012/09/18/191128.html鎯呯粷鏍艱皟(fresmaster)鎯呯粷鏍艱皟(fresmaster)Tue, 18 Sep 2012 08:48:00 GMThttp://www.shnenglu.com/init/archive/2012/09/18/191128.htmlhttp://www.shnenglu.com/init/comments/191128.htmlhttp://www.shnenglu.com/init/archive/2012/09/18/191128.html#Feedback0http://www.shnenglu.com/init/comments/commentRss/191128.htmlhttp://www.shnenglu.com/init/services/trackbacks/191128.html闃呰鍏ㄦ枃

    ]]>
    GLSL.Ambient occlusion http://www.shnenglu.com/init/archive/2012/04/30/173280.html鎯呯粷鏍艱皟(fresmaster)鎯呯粷鏍艱皟(fresmaster)Mon, 30 Apr 2012 14:18:00 GMThttp://www.shnenglu.com/init/archive/2012/04/30/173280.htmlhttp://www.shnenglu.com/init/comments/173280.htmlhttp://www.shnenglu.com/init/archive/2012/04/30/173280.html#Feedback0http://www.shnenglu.com/init/comments/commentRss/173280.htmlhttp://www.shnenglu.com/init/services/trackbacks/173280.html闃呰鍏ㄦ枃

    ]]>
    久久亚洲av无码精品浪潮| 国产伊人久久| 久久精品国产亚洲av影院| 九九99精品久久久久久| 亚州日韩精品专区久久久| 99久久精品日本一区二区免费| 久久影视综合亚洲| 欧美一区二区久久精品| 日本亚洲色大成网站WWW久久| 亚洲国产成人久久一区久久| 久久99精品久久久久久不卡| 久久只有这精品99| 亚洲精品国产成人99久久| 久久99热国产这有精品| 欧美精品福利视频一区二区三区久久久精品 | 国产精品久久久久久福利漫画| 亚洲国产视频久久| 狠色狠色狠狠色综合久久| 一本色综合久久| 久久99精品久久久久久秒播| 国内精品久久久久伊人av| 久久人人爽人人爽人人片AV麻豆| 伊人久久大香线蕉av不变影院| 久久久久久久久波多野高潮| 亚洲欧洲久久久精品| 香港aa三级久久三级| 久久精品国产亚洲av高清漫画| 区亚洲欧美一级久久精品亚洲精品成人网久久久久 | 日韩精品久久无码中文字幕 | 99久久99这里只有免费费精品| 久久国产视频99电影| 无码任你躁久久久久久老妇| 亚洲午夜久久久精品影院| 久久亚洲美女精品国产精品| 99蜜桃臀久久久欧美精品网站| 91麻豆国产精品91久久久| 日韩精品久久无码中文字幕 | avtt天堂网久久精品| 精品久久久久久无码专区 | 久久亚洲中文字幕精品一区| 欧美粉嫩小泬久久久久久久|