24개 셰이더와 그에 맞는 조절기
이번 주에 효과 갤러리가 꽤 커졌습니다. 벤치마크의 13개 장면 아래에 있는 셰이더 계층은 전체 화면 프래그먼트 셰이더를 모아 둔 곳입니다. 장면 수가 5개에서 24개로 늘었고, 이제 모든 장면에 보고 있는 화면을 바꿀 수 있는 조절기가 하나나 두 개씩 있습니다.
새로 추가된 것
새 장면은 21개입니다. 수면 가까이 떠 있는 태양이 비추는 탁 트인 바다, 거의 아무것도 움직이지 않아 OLED에서 계속 틀어 두기에는 가장 얌전한 달빛 바다가 있습니다. 흐린 하늘, 지평선에 고리 달린 거인이 떠 있는 분화구 외계 행성, 분홍색 외계 협곡, 보는 이를 향해 기울어진 나선 은하, 별 궤적, 워프 터널, 매듭 주위를 도는 초록 코드 비, 스튜디오 조명 아래의 크롬 프랙털 구, 흑백 만화경, 살아 있는 전류 고리 속 유리 심장과 그 밖의 몇 장면도 들어왔습니다.
자리를 만들기 위해 예전 장면인 Synthwave Horizon과 Neonwave Sunrise는 제외했습니다.
타일도 달라졌습니다. 지금까지는 각 셰이더 타일에 장면을 손으로 그린 그림을 보여 줬는데, 그림이 항상 정확하지는 않았습니다. 이제 타일이 곧 장면입니다. 셰이더가 화면 가까이 처음 들어오면 한 프레임을 그려 넣고, 마우스를 올리면 실시간으로 재생합니다.
조절기
셰이더를 열면 조절기에 전에 없던 슬라이더가 한두 개 보입니다. 기존의 부하, 속도, 화질 조절기 옆입니다.
장면 전체를 결정하는 숫자를 작성자가 남겨 두었다면 조절기가 그 숫자를 움직입니다. 바다에는 파도 높이와 물결, 흐린 하늘에는 구름과 밝기, 은하에는 팔의 비틀기, Star Trails에는 궤적 수, Warp Speed에는 빛줄기 수가 있습니다. 녹아내리는 색에는 작성자 자신의 시드가 들어갑니다. 코드 주석이 바꿔 보라고 안내하듯이 어떤 값을 넣어도 다른 모양 묶음이 나옵니다. 데모파티에서는 분당 박자 수로 템포를 정합니다.
어떤 장면은 안쪽의 무언가를 움직이면 다른 부분이 망가집니다. 그런 장면에는 장면 바깥에서 색조와 확대를 적용합니다. 모든 조절기는 작성자가 남긴 값에서 시작하므로 처음 보이는 화면은 언제나 원래 만들어진 장면입니다.
세 장면은 재생 전에 묻습니다
모든 셰이더에 깜빡임 테스트를 적용했습니다. 장면이 얼마나 복잡해 보이는지가 아니라, 광과민성 뇌전증 지침에서 깜빡임을 세는 방식처럼 시간에 따른 화면 영역별 밝기 변화를 측정합니다. 탈락한 것은 Flux Core와 데모파티입니다. 벤치마크의 폭발하는 별인 Hypernova는 원래부터 깜빡임으로 표시했으므로 여기에 합류합니다.
이 세 장면은 먼저 묻고, 동의하기 전에는 두 셰이더의 타일도 마우스를 올려도 멈춰 있습니다. “이 기기에서 다시 묻지 않기”를 선택하면 다음부터 질문이 나오지 않습니다. 돌아가면 아무것도 기억하지 않으므로 다음에 다시 묻습니다. 다른 장면은 모두 바로 열립니다. Static Field도 마찬가지입니다. 페이지에서 가장 거칠어 보이지만, 의미 있는 크기의 화면 영역에서는 노이즈가 평균화되기 때문에 테스트를 쉽게 통과합니다.
어떻게 골랐는가
셰이더는 다른 사람이 작성한 것이므로 라이선스를 먼저 봤습니다. Shadertoy의 기본 조건은 상업적 사용을 허용하지 않고 이 사이트에는 광고가 있으므로, 퍼블릭 도메인이나 MIT를 명시적으로 허가한 작품만 채택했습니다. 새 장면 중 19개는 퍼블릭 도메인이고 2개는 MIT입니다. 작성자 코드의 허가 문구를 읽은 다음 모든 셰이더에 다른 곳의 코드를 빌려 온 부분이 없는지도 확인했습니다. 리믹스에 자유 라이선스가 붙어 있어도 빌려 온 부분까지 자유로워지는 것은 아니기 때문입니다. 보기 좋은 후보 몇 개가 이 검사에서 제외됐습니다. 작성자는 모두 효과 페이지의 표에 표시했습니다.
다른 이유로 빠진 장면도 하나 있습니다. 아름다운 석양 바다였지만 기준 Mac에서 1080p로 29 fps밖에 나오지 않았습니다. 휴대폰에서는 슬라이드쇼가 될 수준입니다.
휴대폰에서는
가장 무거운 셰이더는 고밀도 화면에서 낮은 해상도로 시작하므로 처음부터 부드럽게 움직입니다. CSS 픽셀 하나당 기기 픽셀 하나보다 낮아지지 않으며, 하드웨어가 따라오면 화질 조절기로 다시 높일 수 있습니다. fps 표시도 실시간이라 현재 상태를 알 수 있습니다. 이 변경은 벤치마크에 영향을 주지 않습니다. 셰이더는 점수에 들어가지 않고, 점수 대상 부하는 버전 2.2.0부터 고정되어 있습니다.
모두 무료이고 브라우저에서 실행되며 계정도 필요 없습니다. 셰이더는 켰을 때만 스트리밍됩니다. 전체 릴리스 노트는 변경 기록에서 볼 수 있습니다.