더블버퍼링 루틴이 OnPaint 안에 작성되어있다는 가정하에..
invalidate(TRUE) 하면 더블버퍼링코드 넣어봤자 말짱 꽝이다...
invalidate(FALSE)를 해야한다.
TRUE일 경우에는 화면을 하얗게 지웠다가 다시 그리기 때문에 그 지우는 과정이 보여지면서 깜빡이게 된다
FALSE일 경우에는 화면을 지우는게 아니고 그 위에 덮어서 그리기때문에 지우는과정이 생략되서 깜빡임이 없게되는것이다.
Simple and Fast Media Library
여러가지 버젼으로 있다.
c++/ruby/pytho 등등..
인상적인것은 네트웍 라이브러리중 패킷 클래스인데
데이타를 insert하고 read하는게 인상깊다.
sf::Packet toSend;
std::string name = "test";
int age = 18;
float dummy = 3.0f;
toSend << name << age << dummy;
단지 << 연산자 하나만으로 패킷을 저렇게 채울수가 있다.
이 외에도 여러가지 편리한 클래스들이 많다.
contradictory 모순된
alleviate 완화시키다
advent 출현
luminous 빛을뿜는
급하게 토익점수가 필요한건 아니지만 이렇게라도 하지않으면 영어공부를 안할거 같아서...
이번달 토익시험은 가채점을 해보니 꽤 잘나온거 같지만 아직도 LC에서 몇문제 정도는 제대로 못듣고
찍는 경향이 있어서 이번달에는 LC도 좀 확실히 하려고 한다.
퇴근하고 집에오면 전.혀 공부를 하고자하는 마음이 안들기때문에 학원도 2 클래스 정도 등록하려고 한다..
LC랑 Voca 정도..
어떻게하든간에 한달을 가치있게 보내고 싶은 마음이 간절하다.
토익시험을 본 저녁엔 항상 '아 이번달도 이렇게 지나가는구나'하는 시원섭섭한 감정이 밀려온다.
9월은 너무 빨리 지나간거 같다. 그다지 바쁘게 지내진 않은거 같은데 말이다.
회사일도 그리 많진 않았었던거 같고..
아, 이번달엔 우리회사엔 나말고도 병특 2명이 있는데 둘다 훈련소에 입소했다. 9 월 10일이었던가.
뭐 잘 지내고 있겠지.. 추석끝나고 한주 뒤에나 올듯싶다.
음..그리고 요즘 다시 살을 빼려고 줄넘기를 시작했는데.. 젠장..주말이 문제다. 항상 먹을걸 입에 달고사니..
게다가 난 중요한 시험을 마친후에는 항상 햄버거나 피자,치킨 같은걸 먹는 습관이 있다. 자신에 대한 보상심리랄까, 뭐 그런거다. 그래서 오늘 석촌중에서 토익시험을 마치고 집에오는길에 송파역부근에있는 KFC에서 치즈핫징거버거 박스를 사먹었다. 가격은 6,300 원 이던가? 구성물이 워낙 알차서 비싸다는 생각도 안들었다.
흠..이제 10시다. 이제 줄넘기 하러 나가야겠다.
Something.h
class Something
{
public:
static char szName[21];
}
Something.cpp
char Something::szName[21];
Other.cpp
void Other::otherFunction()
{
strcpy( Something::szName, "test");
}
클래스의 헤더파일에 저렇게 static 키워드를 붙여주고,
주의할점은 선언한 클래스의 구현부 파일에 char Something::szName[21] 처럼 명시를 해줘야한다.
저렇게 명시를 해줘야 obj 파일에 정상적으로 정보가 등록되어 다른 클래스에서 접근할 수 있다.
예를들어 Other 이라는 클래스에서 Somthing 클래스의 전역변수인 szName을 접근하려 할때
예와 같이 Something::szName 이렇게 스코프(Something)를 명시해주고 변수명을 쓰면된다.
Something 클래스의 전역변수인 szName은 Something 클래스의 객체가 단 하나도 생성되지않아도
메모리상에 존재하므로 접근이 가능하다.
1. introverted 내성적인
he tends to be introverted.
2. deteriorated[디티리오레이티드] 크게 저하되다.
his health deteriorated immensly because of smoking cigarettes.
3. dominant 지배적인
Human beings are the most dominant animal on earth.
4. assume 추측하다
I assume she was a thief.
오랜만의 포스팅이다.
이번에는 Ogre Class Reference 의 StaticGeometry 에 대한 내용을 읽고 이해한 내용을 써보려 한다.
요즈음의 그래픽카드들은 batch를 선호한다. 즉 10만개의 폴리곤을 렌더링해야 한다고 할때,
폴리곤 10개씩 1만번 배치 처리하는것보다, 폴리곤 1만개씩 10번 배치처리하는것이 훨씬 빠르다는 말이다.
즉, "한 배치에 들어가는 폴리곤의 수를 최대화 해서 배치의 수를 줄이는것"이 빠른 렌더링의 관건이라 할 수 있겠다.
여기서 배치라는 말은 폴리곤들이 렌더링파이프라인에 들어가는것을 말한다. 10배치면 렌더링 파이프라인이
10번 돌아가는것이고, 1만 배치면 렌더링파이프라인이 1만번 돌아간다고 생각하면된다.
일반적으로 batch 횟수 = DrawPrimitive(..) 콜수 와 일치한다.
그리고, 렌더링속도와 input 폴리곤의 갯수는 logN 그래프로 나타낼 수 있다고한다.
즉 x 축이 폴리곤수이고, y 축이 렌더링 비용이라고 할때 이 그래프는 y = ax + b 의 선형 그래프가 아닌 logN 형태의 그래프를 나타낸다.
logN 그래프를 보면 알겠지만 x값이 작을때는 기울기에 경사가 좀 있지만, x 값이 커질수록 그래프의 기울기가 거의 x 축과 나란해진다. 이것이 의미하는바는, 렌더링파이프라인에 들어가는 폴리곤이 무한정 증가한다고 해서 비용(resource)또한 선형적으로 증가하지 않는다는것이다. 증가된 폴리곤 갯수에 대한 비용상승폭은 점점 줄어들며 logN의 그래프처럼 비용상승폭은 거의 0 으로 수렴한다.
이 사실을 통해 한 배치(한번의 렌더리파이프라인 통과)에 많은수의 폴리곤을 넣는것이 얼마나 효율적인지 깨닫게 되었다.
A* 알고리즘 기반의 Pathfinding Simulator 입니다.
AS3.0 을 이용했고 툴은 Flex Builder 를 사용했습니다.
개인적으로 A* 알고리즘을 공부하다가 이걸 시각화 할순 없을까 고민하다가 만들게 되었네요~
대학과정에서 A* 알고리즘을 처음으로 공부하고 계시거나 개인적으로 관심이 있으신분들께
도움이 되었으면합니다.
if you have any question, just reply to this post :)
there are not only substantial articles that make me know more about ogre engine but also general articles about physics, math and so on. I usually commute to work on a bus reading those articles. it gives me spritual energy, life force..
my current planed goal is making a 3D Game using OGRE engine on my own by November this year....
i hope everything is going well...
P.S. i'am trying to improve my english writing skill... so i will often write a post on blog by english..
