초고속 3d 작업-체험 환경을 구축하기위해
언리얼엔진과는 별개로 시스템을 구축하기로 하는 중이다.
언리얼엔진은 뭐 하나 할라치면 1시간은 잡아먹히는데,
파이썬으로하면 극도로 빠른 개발주기가 보장될것이다.
1월에 뭔가 엄청난걸 보급하는걸 목표로 열심히 하는 중임!
생각보단 뭔가 잘 되고, 그런것치곤 할게 많은것같다.
지금은 파이썬 프로그래밍 언어로
opengl 이라는 그래픽 띄우는 ...거 를 사용해서
3d프로그램같은걸 만들려는 중이다!
10월부터해서, 10월3주차까지는 관련 지식 배운듯하고
11월초쯤에, 점을 띄우는것은 성공했고
이제 면을 만든 뒤에 이미지파일을 그 면에 그리는걸 하는 중이다.
11월12일의 기록이다. 이거쯤에서 손을 못 대고 있었다.
사실 막 안 되는건 아닌데 아무튼 이래저래 바빴다.
..빼빼로만들었고.. 그러고 왠지 3일이 흐르고 하다 보니 오늘이네.
위의 삼각형은, 잘 안 된 삼각형이다!
이게 잘 된 삼각형이다!
허니캣 배경이 그냥보긴 흰색인데, 왼쪽의 화면보면 무늬들이 살아났음.
이미지파일은 r,g,b,a 레드,그린,블루,알파(투명도)
로 각 점이 구성되어있어. 투명도에 따라 이런 일도 생기는구나.
투명도 처리 해 줌.
투명도 값<100퍼 면 그냥 검게 칠하도록 한 코드의 결과다.
그리기순서가 맘대로면 이렇게 덮이기도 함!
투명한 녀석은 그래픽카드가 화면에 그릴 때 그래서 맨 마지막에 그리곤 한대.
이렇게 띄우기도 해 봄!
왜 삼각형이다가 이제야 사각형 되었냐면,
그래픽카드는 내부 데이터를 삼각형으로 처리하는게 빠르기 때문이야
위의 네모도 사실 삼각형 두 개 이어붙인거임.
하도 연속해서 붙여놔서 경계선이 안 보이는것 뿐이야!
이제 대충 네모는 질려서,
3d모델파일을 불러오는걸 하려고했는데
보통 이런 큐브로 시작함. 점이 8개밖에안되어서 문제시 데이터 보고 판단하기가 좋다.
3d모델 파일은 obj fbx dae smd stl 등등 있는데,
obj파일이 메모장으로 열어보면 딱 보이는 구조라서 ㄱㄱ함.
난 아마도 이 프로그램이랑 블렌더랑 왔다갔다하고,
블렌더에서 언리얼로 내보내던가 할 듯.
이렇게 9면을 만든 뒤에 매칭을 해 봤어. 잘 보이더라.
키보드 키패드 눌러서 1-9번으로 바뀌게도 했다!
3d 그리는 수단 양대산맥(지금은아니지만)
다이렉트x는 좌표가 위에서 시작하고 opengl은 아래에서 시작하는데
이거때문에 어젠가 2-4시 2시간 괴로운 시간을 보냈다.
닌텐도3ds 추출한 게임들 다 direct x 방식이더라.
나도 큐브 같은거 만들었다.종이접기처럼 그런느낌인것임.
..대충 그런 느낌으로 유메 얼굴을 띄우는데 성공했다!
이제 이미지를 화면에 띄우는것도 잘 된다!
아까도 띄웠잖아요!라고할수있지만
지금것은 데이터가 좀 더 줄어든 방식임.
삼각형을 그리는 점이 겹치는 경우 그걸 생략해서 용량을 줄일 수 있어.
지금은 용량이런거 사소해보이지만 나중에 되면 속도를 줄이는 역할을 하겠지.후후후..
삼각형을 많게는 20000개를 0.016초마다 그려야하는데, 이 쯤 되면 겹치는 점을 줄이는게 필요한것이야!
그러고나서 갖은 수모와 즐거움을 가장한 노력끝에 3d모델 파일을 불러오는데 거의 성공한 순간의 장면이다.
우측 아래의 [0,1,2,3... 적힌곳 보면 17까지 갔다가 18이 아닌 0이 나와.
0은 아까 찍어뒀던 0번이 재활용되었단것을 의미하는데,
실제로 좌측 파란곳 보면 5/1/1 이라는게
6줄쯤 위에 5/1/1 이 보임. 같은 점을 생략해서 용량과 전송속도를 줄인다!
그래서 이렇게 아까 그렸던 큐브가 눈에 보이는것이다.
뭔가 이상하게겹친건
파란색은 z축 빨간색은 x축인데 이게 막 겹친거같더라고.
나중에 알게되겠지뭐!하고 넘어가기로함.
ㅋㅋㅋ장난삼아 만들었던 공대지미사일 같이 생긴거 불러와봤는데 ㄹㅇ 불러와지더라.
꼬리부분보면 파란색이 이상하게 겹치는걸로보아 역시 나중에 해결되겠지 싶다.
설마했더니 유메 머리도 바로 불러와짐.넘좋다..
이런 3d용 파일들을 이젠 내가만든 프로그램에서 볼 수 있는것이야!
https://github.com/liltmagicbox/3dkatsu
여기에 코드 게시하려고 해.
앞으로는
3d모델 회전하기
3d모델 3d같이보이게하기
카메라 이동회전하기
등등 할 일이 잔뜩!
..점점 깊은 심연으로 걸어가는듯하다.
댓글 영역
획득법
① NFT 발행
작성한 게시물을 NFT로 발행하면 일주일 동안 사용할 수 있습니다. (최초 1회)
② NFT 구매
다른 이용자의 NFT를 구매하면 한 달 동안 사용할 수 있습니다. (구매 시마다 갱신)
사용법
디시콘에서지갑연결시 바로 사용 가능합니다.