VBlank (vertical blank)
https://learn.microsoft.com/en-us/windows/win32/api/dxgi/nf-dxgi-idxgioutput-waitforvblank
DXGI(DirectX Graphics Infrastructure) 프레젠테이션
Android Performance Patterns: Understanding VSYNC
https://www.youtube.com/watch?v=1iaHxmfZGGc
DX IDXGISwapChain::Present()
https://learn.microsoft.com/ko-kr/windows/win32/api/dxgi/nf-dxgi-idxgiswapchain-present
DXGI_SWAP_EFFECT
https://learn.microsoft.com/ko-kr/windows/win32/api/dxgi/ne-dxgi-dxgi_swap_effect
Unreal Engine 5 코드 참고
UnrealClient.cpp (1689)
void FViewport::EndRenderFrame(...)
> RHICmdList.EndDrawingViewport(GetViewportRHI(), bPresent, bLockToVsync);
SlateRHIRenderer.cpp
inline bool CompositeUIWithHdrRenderTarget(const FViewportInfo* ViewInfo)
> RHICmdList.EndDrawingViewport(ViewportInfo.ViewportRHI, true, DrawCommandParams.bLockToVsync);
DX11 Tutorial
https://www.rastertek.com/dx11win10tut03.html
void D3DClass::EndScene()
{
// Present the back buffer to the screen since rendering is complete.
if(m_vsync_enabled)
{
// Lock to screen refresh rate.
m_swapChain->Present(1, 0);
}
else
{
// Present as fast as possible.
m_swapChain->Present(0, 0);
}
return;
}
OpenGL Tutorial
https://www.rastertek.com/gl4linuxtut03.html
// Get the current drawable so we can modify the vertical sync swapping.
drawable = glXGetCurrentDrawable();
// Turn on or off the vertical sync depending on the input bool value.
if(vsync)
{
glXSwapIntervalEXT(m_display, drawable, 1);
}
else
{
glXSwapIntervalEXT(m_display, drawable, 0);
}
Unreal Engine Lyra 샘플 문서
수직 동기화(Vertical Sync)
수직 동기화는 항상 전체 프레임을 렌더링 및 프레젠테이션하여 스크린 티어링을 제거합니다. 수직 동기화를 비활성화하면 프레임 레이트와 입력 반응이 향상되지만 수평 화면 테어링이 발생할 수 있습니다. 수직 동기화는 다음 옵션을 통해 토글될 수 있습니다.
Unity Engine 의 vSyncCount
https://docs.unity3d.com/2022.3/Documentation/ScriptReference/QualitySettings-vSyncCount.html
using UnityEngine;
public class Example : MonoBehaviour
{
void Start()
{
// Sync the frame rate to the screen's refresh rate
QualitySettings.vSyncCount = 1;
}
}
팁 강좌
디스플레이 분류| 수직동기화, 그 정체를 파헤쳐보자! 작성 완료: 2016-09-12 2:50
https://coolenjoy.net/bbs/37/123538?sfl=wr_subject&stx=%EC%88%98%EC%A7%81&sop=and
수직 동기화의 원리와 설정 방법
https://blog.naver.com/chlrkfka949/222689689535
'게임 개발 자료' 카테고리의 다른 글
유니티 엔진 CG 셰이더 코드 경로 위치 (Unity Engine CG Shader Code Path) (0) | 2023.10.30 |
---|---|
감마(Gamma), 선형(Linear) 컬러 스페이스 관련 자료 스크랩 (0) | 2023.10.27 |
텍스쳐 타일링 시 반복 패턴 숨기기 (Hide repetation pattern on Tiling Texture) (0) | 2023.10.23 |
일본 유니티 개발자가 언리얼 엔진에 입문하면서 느낀 생각의 차이점 (0) | 2023.09.18 |
게임 엔진(Game Engine) 목록 2023.09.12 (0) | 2023.09.12 |
게임 개발 관련 참고자료 및 읽을 거리 모음 (2023년9월~) (0) | 2023.09.07 |
언리얼 vs 유니티 1편~4편 링크 모음 (0) | 2023.09.03 |