자바 스크립트 + webgl + canvas를 이용하여 프로젝트를 진행중이었는디...
이 와중에 작은 큐브 + 작은 큐브의 각 면을 선택하고 싶었던 저는...
금단의 영역 프레임 버퍼에 도전하게 되고....
마침내 패배를 하여 오늘 하루를 날려 먹게 됩니다.
벗뜨!
하지만 이가 없으면 잇몸으로 하라 했던가
https://forums.khronos.org/showthread.php/6821-Getting-a-pixel-in-webgl-area
라는 엄청난 내용을 발견하게되고...
캔버스를 2개 생성하여 뻘짓을 한 결과!!!
마침내 선택이 가능하게 되었습니당.
요기 잘 보시면 작은 큐브마다 색깔이 쪼오오오금씩 다른데.. 그것을 identifier로 삼아 큐브를 구별해낼 수 있게 된 것입니다!!!!!!!!!!!!!!!
쏴리질러!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
참고로 아재들 눈으로는 저 색깔을 구별할 수 없음 ㅎㅎ~
난 퍼펙트 비젼 이어서 데헿
갓고수네
무슨말이져
내가 너무 기본이 좋아서 설명해주고 싶다
기부니가 좋다
무슨 말인지 알려줄까 헤헤
저 큐브랑 상호작용할때 이미지의 색깔을 기준으로 집는다 이런거같아요
말하자면 드로잉 API로 그려놓고 마우스의 다운 업 이벤트에 속하는 오브젝트를 처리하지 못해서 전전긍긍하다가
멋져요
아주 어려운 방법으로 이미지의 색상을 이용해 오브젝트를 특정할 수 있었다. 하는거겠지.
저 궁금한데 그럼 여기다 음영들어가면 어떻게해야할까여
보통은 지오메트리 계산이 귀찮을때 광선 추적 한 번이면 끝나는 일이긴 한데...
조명값을 이용하다니 ㅠㅠ
답은 유니티다 // return -1;
이런게 키워드가 뭐였더라... FOV object picking 이었나.
ㅇㅇㅋ picking 맞습니당
picking을 하려면 2가지가 필요했는데 하나는 쉐이더에 오브젝트마다 다른 값을 주어서 두 번째 짤의 밑에 큐브마냥 그리는거.
다른 하나는 클릭한 곳의 색상 값을 가져와서 어떤 큐브가 선택되었는지 비교해야했는데... 클릭한 곳의 색상값을 가져오려면 프레임 버퍼를 이용해야했는데 -_-;; 그게 실패해서
음영 들어가도 똑같음
아예 Object 로 받아오는 방법이 있을꺼여~ 색상이 아니라 ㅋㅋ 니가 잘라서 넣었다면.
그래서 FOV object picking 이란거지.
FOV 가 가시면, 즉 마우스 활동영역을 말하거든.
오브젝트로 받으려면 자브 스크립트 상에서 각 큐브의 움직임의 자취를 계속 남겨줘야하지 않을까영
이거 쉐이더에 넣기전에 무슨좌표는 머다하고 뽑는것도 가능?
WebGL API 중에 도움이 되는게 있을듯 한데? OpenGL like 하다면 말야. 개개의 블럭만 별도 Object 면 될듯함
ㄴ 그걸 할 수 있긴한데, 그러려면 모든 큐브에다가 회전,이동한 값들 역시 다 저장해놔야해서...
이거 재밌는거가틈 코오드도 볼수이쓸까요
ㄴ 는 2016에게한말~
으으 그런 방법이 있을까요 더 찾아봐야하나
그 말이 아닌데, 지오메트리 계산이 귀찮을때 Object 로 바로 특정가능한 방법이 있다궁.
호고곡
그런 방법이 있다니
웅 그래서 FPS 게임이 나온거야. 사실 쉽거든.
허거걱..
렌더링 화면이란게 화면의 각 픽셀에 대응하는 면을 광선추적하는거라.
조금만 인터페이스를 노출해 놓으면 FPS 게임 같은 기능이 가능해지지.
그러니까 Z buffer 안으로 들어가 면을 찾아오는것~
끄... 제가 저번에 배운거랑 해서 코세흉이 어떤 이야기 하는지 대략은 잡히는데... 연결을 잘 못시키는듯
그래픽스도 재밌어보임 결과물도 바로바로 보이고
코드가 요상해서 보여주기 부끄러움 *_*
프갤있으면 신기한게 많아서 자꾸만 배우고시픈게 늘어남
이제 키워드를 찾으셨을테니, 한번 직접 찾아보시옹~ DirectX 든 OpenGL 이든 게임용 렌더링 엔진이든 그런거 대충 다 있음.