OpenGL 게임이 Playstation 1 게임처럼 보이도록 설정할 옵션 (또는 쉐이더)을 알고 싶습니다. PSX는 텔레비전과 텔레비전 렌더링을 모니터와 다르게 사용했기 때문에 100 % 달성 할 수 없다는 것을 알고 있습니다. 감사. :)
OpenGL 게임이 Playstation 1 게임처럼 보이도록 설정할 옵션 (또는 쉐이더)을 알고 싶습니다. PSX는 텔레비전과 텔레비전 렌더링을 모니터와 다르게 사용했기 때문에 100 % 달성 할 수 없다는 것을 알고 있습니다. 감사. :)
답변:
내 의견으로는 OpenGL 장면을 PSX 장면처럼 보이게하는 가장 중요한 비트는 필터링이 꺼져 있는지 (PS1이 가장 가까운 이웃 만 있음) 확인하고 Z 버퍼링을 끄고 (없음이 아님) 확인하는 것입니다. 화가 알고리즘을 사용한 장면.
조명은 꼭짓점마다 만 이루어졌으며, 실제로 조명 하드웨어에는 구라 우드 음영의 꼭짓점 채색 만 없었습니다. 조명은 소프트웨어로 구동되므로 CPU 시간의 한계 내에서 무엇이든 할 수 있었으며, "조명"과 같은 영리한 고급 기능을위한 여분의 공간은 많지 않았습니다. :) 우리는 한 지점에서 거울을 얻을 수 있었지만 정점마다 장면을 반짝 거리게 만들었습니다. 스킨 된 메시를 블렌딩 노멀로 작업 할 때 스페 큘러를 얻지 못하고 사용한 데 너무 많은 시간이 걸렸습니다.
PS1에는 약간의 질감 수영이 있었지만 OpenGL을 사용하여 어떻게 구현했는지 잘 모르겠지만 실제 경험이 있다면 화면 가장자리에 가까워 질 때 UV 고장을 만들려고 할 수도 있습니다. 합리적인 근사치를 줄 것입니다.
또한 정점 변환을 살펴 보는 것이 좋습니다. PS1에는 플로트가 없었으므로 렌더링은 고정 소수점 파이프 라인을 사용하여 이루어졌습니다. 이것이 애니메이션을 재생할 때 불안한 동작의 원인입니다. 정점이있을 수있는 위치는 너무 많았고 16 비트 고정 점에서는 그다지 많은 위치가 아니 었습니다. 게임에 어떤 영향을 미치는지 이해하기 위해 몇 가지 PS1 YouTube 비디오를 시청 하십시오 (http://www.youtube.com/watch?v=RSV4IBa1pMI).카메라가 수평에 가까워지면 직선이 흔들린다는 것을 의미합니다. 이것을 에뮬레이션하는 좋은 방법은 (PS1처럼) 소프트웨어로 세상을 변화시키고 항상 정수 화면 좌표를 에뮬레이트 화면 크기로 출력하는 것입니다 (폴리가 흔들리는 주요 이유 중 하나였습니다. 하위 픽셀로 렌더링 할 수 없습니다).
편집하다
텍스처 수영은 3D 보간이 전혀없는 PS1 때문이었습니다. user712092에서 언급했듯이 affine 렌더러는 화면 공간에서만 보간 할 수 있으므로 대각선이 잘못되었습니다. 이것은 noperspective
보간 한정자 를 켜거나 씬을 손으로 변형하여 에뮬레이션하고 x 및 y 화면 좌표를 z 값으로 나눈 후 정점의 최종 Z 값을 무시하여 구현할 수 있습니다.