3D 그래픽엔진 화면 흔들림방지하기

|

대부분의 3디 그래픽스 랜더들은 씬그라프들에 대한 update 콜백을 제공한다.

대부분의 어플리케이션들은 그곳에서 씬그라프상의 오브잭트들을 움직이게된다.

그리고 함수의 마지막 부분에서 updateAll을 하게 되는데

문제는 여기서 발생한다.


주로 물체와 카메라를 동시에 움직일때 발생한다.


카메라의 시점과 오브잭트가 위치가 갱신한 타이밍이 교묘하게 엇갈리기때문에 발생한다.


가장간단한 해결방법은 물체를 움직이기전에 카메라의 메트릭스를 한번 갱신해주는 방법이다(월드행렬)


var self = this;
self.camera.updateMatrixWorld();

var v1 = new THREE.Vector3( 0, 0, 0.5 ).unproject( self.camera );
self.testnode.position.copy(v1)

this.updateAll();


위와 같이 말이다.


저작자 표시 비영리 동일 조건 변경 허락
신고

'html5' 카테고리의 다른 글

electron 자료모음  (0) 2016.07.17
nwjs 자료 모음  (0) 2016.07.16
3D 그래픽엔진 화면 흔들림방지하기  (0) 2015.12.31
cordova-pulgin-whitelist 사용법  (0) 2015.11.29
crosswalk 사용기 1차  (0) 2015.11.22
How to process argument between js(html5) and cordova 3.x  (0) 2014.06.09
TRACKBACK 0 And COMMENT 0

[nodemcu 강좌] 4.wifi station 모드

|

wifi.setmode(wifi.STATION) 를 써서  AP에 붙는 스테이션 모드를 지정할 수 있습니다.


그다음 단계로 ssid 와 패스워드를 지정해야합니다.

wifi.sta.config("iptime","")

첫번째 인자는 ssid 두번째 인자는 passwd입니다.

ssid 는 iptime 이고 패스워드는 지정하지않았습니다.


wifi.setmode(wifi.STATION)

wifi.sta.config(ssid,passwd)


위 두개의 함수들은 전원을끄거나 리셋을 해도 값이 날라가지 않고 저장됩니다.

여기까지 하면 기본적으로 wifi.sta..autoconnect(1) 로 되어있으므로 자동으로 ap에 붙게됩니다.

만약 autoconnect(0) 으로 자동 접속이 해제된상태이면 

wifi.sta.connect()  로 수동으로 접속합니다.


ap접속을 끊으려면 wifi.sta.disconnect() 를 사용합니다.


저작자 표시 비영리 동일 조건 변경 허락
신고
TRACKBACK 0 And COMMENT 0

[nodemcu 강좌] 3. gpio 다루기

|

지금까지 AT펌대신에 올리려고 노력하셨던것이 바로 nodemcu 펌웨어 입니다.

esp8266의 nodemcu 펌웨어는 c++라이브러인 espreesif sdk 에  루아 인터프리터를 씌운것입니다.

그래서 펌웨어이면서도 스크립트를 교체하는것으로 손쉽게 기능 업그레이드가 가능하여서 매우 혁신적인 개념의 것이라고 볼수있습니다.


펌웨어를 무사히 올렸다면 씨리얼통신프로그램으로 접속하면 초기화면은 다음과 같습니다.




gpio  포트를 켜기위해서는 모드 세팅을 먼저 해줍니다.

1번 포트를 출력모드로 지정합니다.

gpio.mode(1,gpio.OUPUT)

1번포트를 high 상태로 만들어 줍니다.

gpio.write(1,gpio.HIGH)


esp 써져있는 포트번호와 루아펌에서 쓰는 포트 인덱스는 다릅니다. 여기써 사용한 1번은 esp상 기판상에서는 5번 입니다.




위의 사진 좌 상단 rxd 바로 밑에 GPIO5 라고 써져있는 부분이 루아펌(nodemcu)에서는 1번이 되는 것입니다.


GPIO5 -> 1

GPIO4-> 2

두개 포트가 입출력전용으로 사용하도록 만들어진포트입니다. 나머지 포트들도 쓸수는 있으나 다른용도가 있으므로 가급적이면 위의 두개의 포트만 사용하시는 편이 좋을거같습니다.


GPIO16->0

chpd 밑에 GPIO16 으로 표시되는 0번 포트가 하나 더있습니다. 이것은 on off 전용 포트입니다. 그래서 pwm이 필요한 곳에서는 사용할수없습니다.(서보제어)

단순히 켜고끄는 동작이 필요할때는 이포트를 사용하길 권장합니다.


포트값을 읽기 위해서는 gpio.read(port index) 함수를 이용합니다.

print( gpio.read(1) )

방금 write로 출력했던 내용을 읽을수있습니다.


입력모드로 하고싶으면 gpio.mode(1,gpio.INPUT) 을 해주어 입력 전용 모드로 세팅해줍니다.

'







저작자 표시 비영리 동일 조건 변경 허락
신고
TRACKBACK 0 And COMMENT 0
prev | 1 | 2 | 3 | 4 | 5 | 6 | 7 | ··· | 36 | next

티스토리 툴바