무자비한 모습으로 돌아온 나의 맥프로 1세대를 소개한다.



맥프로 1세대에 사용이 불가능한 Yosemite와 5870 ㅋ

5870은 불행히도 부팅화면이 나오지 않지만, 그 외 다른 불편은 없기에 만족하며 쓰고 있다.

5870은 애플용 EFI롬을 올리면, 아예 화면출력이 되지않았고, 레퍼런스 순정롬을 쓰면 그래픽정보가 HD5000으로만 나왔다.

아래의 롬을 씌우면 Boot Screen을 제외하곤 정상사용할 수 있다.



나의 업그레이드기를 간략히 그림으로 표현해봤다 ㅋ



끝.



PS1. 구형 인텔맥에 Yosemite올리는건 아래링크를 참조해도 되고, 한칸 더 아래의 pdf 첨부파일을 직접 받아도된다.

https://www.icloud.com/pages/AwBUCAESEIHvYxwJ7bfbQYZU8VqSphwaKdQEguSH2mGxgP5wk66iL6UtsMOX4MbJpAHpIQHV06hXsjj-VxPhjMWuMCUCAQEEIF5RLaPjoQEXqY55rowLfyEbKKz2FJoGHyk_VYi20E1F#Yosemite_on_a_Mac_Pro_1,1_or_2,1_-_Boot.efi_Method


Yosemite on a Mac Pro 1,1 or 2,1 - Boot.efi Method.pdf


PS2. Yosemite올리는게 성공하면 돌려야할 스크립트

http://forums.macrumors.com/showthread.php?t=1740775&highlight=yosemite

Google AdSense

평범한 Radeon HD5770에 LED 옆간지를 마법부여해보겠다.

옆간지는 갖고 싶지만, 돈이 없는 어린이들이라면 한번쯤 도전해볼만한 작업이다.



우선 튜닝후 시스템감상샷




1. 5770 원래모습

깔끔하긴 하지만, 옆간지와는 상관없는 녀석이다.




2. 튜닝할 부분 컷팅

우선 옆면을 함석가위로 잘라냈다.

원래부터 홈이 있던 부분이라 큰힘 들이지 않고, 쉽게 자를 수 있었다.



3. LED 연결

그래픽카드 내부에 LED를 넣어주는데,

전원은 그래픽카드 쿨링팬 전원에 덧붙였다.

첨엔 파란색으로 해볼까 했지만, 이 색상이 맘에 들지않아 흰색으로 교체했다.



4. 면발광 아크릴

옆 절단면을 면발광 아크릴(광확산 폴리카보네이트)로 채워준다.

면발광 아크릴을 통해 LED빛이 은은하게 퍼지게 된다.



5. 스티커

그런다음 아크릴위로 빛을 이쁘게 수놓는 스티커를 붙여줬다.

Windforce 짝퉁 Handforce되겠다. 뭐, 수공예니까... 적절한 명칭이 아닐까 싶다.




6. 완성

현재 사용하고 있는 gtx770 iGame이랑 비교샷




7. 장착 및 시감

별볼일 없던 5770이 상당히 고급지졌다.

역시 간지는 있고 볼 일이다.



이상 그래픽카드 옆간지 튜닝 끝~

Google AdSense

지난번 포스트에서 시작하는 의미로 화면Clear외엔 아무런 것도 하지 않는 WebGL Canvas를 만들어 보았다.

이번 포스팅에서 부터는 WebGL 기초지식부터 조금씩 알아보겠다.


WebGL에서는 통상적으로 gl이라는 변수에 컨텍스트를 대입한다.

Canvas 2D를 할때는 context, cntxt 처럼 누가봐도 컨텍스트를 의미하는 듯한 변수에 대입했는데,

gl이라니... 너무 생뚱맞지 않은가?

이는 OpenGL과의 코드유사성을 지키기 위환 관례라고 한다.

OpenGL함수는 glClearColor()처럼 gl접두어로 시작하는데,  WebGL은 gl을 더이상 접두어를 쓰지 않는다.

하지만, 컨텍스트를 gl로 만들어두면 gl. ClearColor()처럼 유사한 코드형태가 나타나게된다.

이 관례는 코드유사성을 위해 가급적이면 지키는 것이 좋지 않을까 한다.



1. Drawing Buffers 3가지

웹지엘은 Color, Depth, Stencil의 3가지 버퍼를 가지고 있다.

 - Color Buffer에는 색상과 투명도 정보가 담기고,

 - Depth Buffer에는 각 픽셀의 앞뒤를 나타내는 심도 정보가 담긴다.(뒷쪽 픽셀은 앞쪽 픽셀에 가려서 안보여야 정상아니겠는가)

 - Stencil Buffer에는 랜더링 영역의 경계정보가 담긴다.(안보이는 물체를 굳이 랜더링할 필요는 없지않은가)

이렇게 3가지 Buffer정보를 통해 어떤 픽셀이 어떤색을 띄는지, 얼마나 투명한지, 어떤부분이 보이거나 가려지는지,

어떤 픽셀을 랜더링할지를 결정할 수가 있는 것이다.


2. Vertex Data

많은 곳에서 Vertex를 굳이 우리말 풀어쓴게 정점인 듯 하다.

정점? 뭔가 와닿지 않는 말이다. 좌표라는 표현이 더 이해하기 쉬운 듯 하고, 솔직히 Vertex라는 용어 그대로 쓰고싶다.

Vertex Data 처리와 관련해서 Canvas 2D와 WebGL은 엄청난 차이가 존재한다.

Canvas 2D에서는 좌표의 위치와 색상들, 그러니까 Vertex Data들을 직접 Canvas Context 에 구현할 수 있었는데,

WebGL은 그렇지 않다. Vertex Data는 Vertex Buffer Object(VBO)를 생성해서 쉐이더라는 외부 프로그램으로 보내야 한다.

그러니까 Canvas 2D는 도화지에 직접 붓으로 물감을 찍어발라 그림을 그릴 수 있었는데,

WebGL에서는 도화지에 직접 손을 댈 수 없고, 그래픽카드(GPU)에 처리를 맡기는 것이다.


3. Primitive Types 7가지

WebGL에서는 7가지 기본 Vertex 타입을 제공한다.

- POINTS : 위쪽 1번째 그림. 말 그대로 점이다. 점 한개짜리 vertex

 - LINES : 위쪽 2번째 그림. 시작점과 끝점, 2개의 점을 가진 vertex이다. 꺽인선은 이어진게 아니라 두 LINES간에 한 POINTS좌표가 일치한거 뿐이다.

 - LINE_STRIP : 하나의 LINE을 시작으로 끝점이 계속 연결되는 vertex

 - LINE_LOOP : LINE_STRIP과 비슷히지만, 마지막 끝점이 시작점과 연결되는 vertex

 - TRIANGLES :  점 3개로 이루어진 vertex, 나비모양은 TRIANGLE 2개의 점 하나가 겹친거 뿐이다.

 - TRIANGLE_STRIP : TRIANGLE 모듬인데, 마지막 2개의 점이 다음 TRIANGLE 좌표로 사용된다.

 - TRIANGLE_FAN : TRIANGLE_STRIP과 마찬가지로 TRIANGLE 모듬인데, 모든 TRIANGLES들이 하나의 점을 공유한다.


4. Attributes and Uniforms

WebGL은 Canvas 2D와는 달리 Vertex를 직접 Canvas에 그릴수 없고, 쉐이더 프로그램에 맡겨야 한다고 했다.

그래서 Vertex에는 쉐이더로 넘겨주게되는 Attribute를 갖고 있다.

그렇지만 외부 프로그램인 쉐이더는 Attribute를 받아도 그게 뭔지 모른다.

따라서 그걸 해석할 수 있게 Uniforms을 전달해 주는 것이다.



Google AdSense


새로운 프로그래밍언어나 개발방식을 습득할때 게임만들기만큼 좋은 방법은 없다고 생각한다.

좋은 학습을 위해서는 목표의식과 흥미유발이 중요하다고 하는데,

게임을 만든다는 것 자체가 분명한 목표이고, 엄청난 흥미유발요소이기 때문이다.

게다가 게임개발에는 상당한 수준의 스킬이 필요하기 때문에 게임개발만큼 훌륭한 교보재는 없는 듯 하다.


지난 포스팅에서 HTML5 표준으로 잡힌 Canvas를 이용해서 2D 비행기게임을 만들어봤는데,

Canvas를 이용하면 생각보다 훨씬 쉽게 2D게임을 구현할 수 있었다.

이번 포스팅부터는 HTML5 Canvas위에서 3D구현을 공부할 건데, 역시나 간단한 게임개발을 목표로 진행해보겠다.


WebGL은 이름에서 알수있듯이 OpenGL과 관련이 있는 녀석인데,

2007년 출시된 OpenGL EmbadedSystem(ES) 2.0을 기반으로 나온 웹용 그래픽API이다.

OpenGL은 MS의 Direct3D와 비슷한 역활을 하는 표준 그래픽스 API로써

지금이야 DirectX가 Windows와 콘솔용 3D개발을 상당히 잠식했지만, 2000년대 초까지만 하더라도 OpenGL도 꽤나 많이 사용 되었다.


OpenGL을 익힌적 있는 개발자라면 쉽게 WebGL을 시작할 수 있지만,

내가 2000년대 초반 잠시 공부했던 OpenGL은  1.0버젼이라....

현재의 OpenGL과는 모습도 많이 다르고, 무엇보다 기억도 나지 않는다.

따라서 아주 기초부터 차근차근 할 것이다.

Javascript는 따로 공부해본적도 없고,

WebGL은 처음 접하기 때문에 둘다 시작하는 입장에서 쉽게 쉽게 가보겠다.


우선 아주 기초적인 WebGL을 해보겠다.

HTML5 Canvas 3D를 지원하는 브라우저를 쓰고 있다면 아래의 초록 Canvas영역이 보일 것이다.

Sorry, Your browser doesn't support HTML5 CANVAS









Google AdSense

지난번 뱅기게임 완성작에 터치 이벤트를 추가해봤다.

인터넷익스플로어를 사용하는 PC에서는 canvas게임을 할 수 없지만,

스마트폰으로 이 포스트를 본다면 게임이 가능할 것이다.



Canvas위에 떠있는 반투명레이어를 올리고, 그 레이어에 마우스 또는 터치 이벤트를 추가했다.





Sorry, Your browser doesn't support HTML5 CANVAS

Google AdSense

+ Recent posts