source

표면과 텍스처의 차이(SDL/일반)

goodcode 2022. 8. 10. 22:18
반응형

표면과 텍스처의 차이(SDL/일반)

텍스처와 표면은 어떤 차이가 있는지 알기 쉽게 설명해 주실 수 있습니까?나는 그것이 사용되는 것을 보았다.SDL2~하듯이SDL_Surface그리고.SDL_Texture.SDL_Texture로부터 작성됩니다.SDL_Surface이미지나 이미지로부터 작성됩니다.둘 다 픽셀 집합입니다.그러나 이들 간의 주요 차이점은 알 수 없습니다(GPU에서 뭔가 해야 합니까?)

구글을 검색하려고 했지만 찾은 모든 설명은 너무 복잡해서 컴퓨터 그래픽스 내용을 더 깊이 파고들지 않고는 이해할 수 없었습니다.

기본적으로 "GPU를 사용하여 무언가를 해야 한다"는 가정은 옳습니다.

SDL_Surface는 소프트웨어 렌더링에 사용됩니다.소프트웨어 렌더링에서는 saloomi2012가 올바르게 인식되고 있듯이 일반 RAM을 사용하여 이미지 데이터를 저장합니다.따라서 대부분의 경우 표면과 관련된 데이터 버퍼에 직접 액세스하여 내용을 수정할 수 있습니다. 즉, CPU를 사용하고 있기 때문에 소프트웨어 이름이 사용됩니다.

SDL_Texture반면 하드웨어 렌더링에 사용되며 텍스처는 VRAM에 저장되며 사용자가 직접 액세스할 수 없습니다.SDL_Surface렌더링 조작은 GPU에 의해 고속화됩니다.내부에서는 OpenGL 또는 DirectX(Windows에서만 사용 가능) API를 사용합니다.이 API는 비디오 하드웨어, 즉 하드웨어 렌더링 이름을 사용합니다.

물론 하드웨어 렌더링은 소프트웨어 렌더링보다 훨씬 빠르기 때문에 항상 주요 옵션으로 고려해야 합니다.

SDL_Texture는 일반 RAM이 아닌 비디오 카드의 VRAM에 로드됩니다.

이에 대한 자세한 내용은 다음을 참조하십시오.

https://thenumbat.github.io/cpp-course/sdl2/05/05.html

지난 수업에서 설명한 바와 같이 텍스처는 서페이스와 동등한 GPU 렌더링입니다.따라서 텍스처는 거의 항상 SDL_CreateTextureFromSurface() 함수를 사용하여 지표면에서 생성됩니다.이 함수는 예상한 대로 작동합니다. 매개 변수는 렌더링 컨텍스트와 텍스처를 만드는 지표면입니다.다른 생성 함수와 마찬가지로 오류가 발생하면 NULL을 반환합니다.

도움이 됐으면 좋겠네요!

표면은 RAM을 사용하고 텍스처는 표면보다 빠른 비디오 카드를 사용합니다.

언급URL : https://stackoverflow.com/questions/21392755/difference-between-surface-and-texture-sdl-general

반응형