關於遊戲開啟 垂直同步Vsync後,遊戲顯示出畫面秀到螢幕上每秒張數問題

最近我朋友和我討論Vsync開啟後的問題

Vsync簡單說就是因為螢幕只有60Hz的能力,所以把顯示卡的能力壓在每秒60張,讓畫面更穩定並且讓顯卡節能

但是談到每秒壓到60張,我覺得開啟Vsync就是讓顯卡即使能力超過60張,也只讓顯卡每秒根據3D點變化的位置做60次繪圖

但我朋友卻堅持是程式已經畫好固定的張數,EX:每秒製作200張畫面,然後開啟Vsync後顯卡會從200張中"挑出"60張去秀到畫面上.....

以上這個說法我覺得明顯有問題,可是他卻很堅持

有沒有什麼遊戲製作流程,或是如何把3D點位置貼圖後show到畫面上的流程,可以參考來說服他的說法是錯誤的嗎?
vsync應該是每秒固定直接擷取60張畫面

每一張畫面會等待垂直掃描整張完整畫面後,在進行下一張畫面的處理

缺點就是會lag,但優點是畫面不會有刀痕...

不開vsync則是不等待畫面掃完,就進行下一張畫面的處理

所以不開vsync的情況下遊戲會非常流暢...缺點就是張張都會看到刀痕!

補充:先截取200張畫面再挑60張,對顯示卡來講這是非常費時的做法,何況人眼每秒大概就是看60張的畫面,也不用挑畫面,直接以先進先出的方式處理...

Mellors wrote:
vsync應該是每秒...(恕刪)


60fps會LAG...?
除非是不能維持60FPS吧

如果60都算LAG,那電玩主機上的普遍30FPS,玩家怎麼還玩的下去

akira1104 wrote:
但我朋友卻堅持是程式已經畫好固定的張數,EX:每秒製作200張畫面,然後開啟Vsync後顯卡會從200張中"挑出"60張去秀到畫面上........(恕刪)

可以觀察GPU的使用率有沒有改變
假設全速是可以顯示200張畫面
若開啟Vsync後顯卡會從200張中"挑出"60張去秀到畫面上
GPU的使用率應該也是接近100%
若開啟Vsync後顯卡只運算應該被顯示的60張畫面
GPU的使用率應該會少很多
實驗看看就知道

其實兩種都有可能
不過應該不會有這麼笨的程式設計
應該被顯示畫面已經是可預知的(運算完再200選60?先200選60再運算不是一樣嗎)
可以只要運算60張畫面,何必去運算200張畫面
我直接講答案, 就是一秒鐘只畫60張, 沒畫的時候GPU在等螢幕的VSYNC.
所以是樓主的想法對....

GPU的行為是, 畫的時候如果這一個畫面已經畫完, 但還沒超過這個畫面的
週期1/60秒的話(例如效能是一秒200fps的時候), 繪圖API會停下來等時間到再畫.
應該說在效能超過螢幕顯示速度的時候, 繪圖API會等可以送指令的時候才會把
資料送給GPU去處理.
與失敗為伍者,天天靠盃都是別人的錯。 與成功為伍者,天天跟失敗切磋直到不再出錯。
感謝各位大大的解答

網路上神人真多(・∀・)
問一下
如果今天顯卡效能沒有超過螢幕 就是60HZ
但是遊戲中顯卡並沒有到達這個標準或是只有剛好 不足60FPS
那開了這選項 會怎樣
或是顯卡預設是開了 遊戲裡的選項選擇與否有差異嗎
serio wrote:
問一下如果今天顯卡效...(恕刪)

vsync"等待垂直重新整理"
最主要的功能是提升視覺品質
一張"frame"繪製完成才呈現
避免GPU資料太快
畫面上半與下半不同步的問題
簡單說就是畫面撕裂"tear off"

如果GPU的性能不佳
影響就是畫面更新率變慢
GPU一樣是完成一個frame才丟出資料, 接著再才畫下一個frame

通常在顯卡的設定程式會說明
"關閉vsync可以得到較高的效能"
我不想當男子漢, 我只想要我的小毛毯

vsync"等待垂直重新整理"
最主要的功能是提升視覺品質
一張"frame"繪製完成才呈現
避免GPU資料太快
畫面上半與下半不同步的問題
簡單說就是畫面撕裂"tear off"

如果GPU的性能不佳
影響就是畫面更新率變慢
GPU一樣是完成一個frame才丟出資料, 接著再才畫下一個frame

通常在顯卡的設定程式會說明
"關閉vsync可以得到較高的效能"

看來這是類似一個限速器了
特別是對輕易就FPS超高的顯卡來說...
感謝感謝
原來對於低階內顯這個功能沒有什麼差別
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!