dogbull

Edge detection on GPU

Render to texture에 관한 예제이다. 윈도우에 직접 Teapot를 렌더링 한 것이 아니라, 우선 윈도우 클라이언트 영역(화면의 검은 부분)과 같은 크기의 텍스쳐를 생성한 후, 그 텍스쳐에 Teapot를 그리고, Quad(Triangle x 2)를 이용하여 텍스쳐 매핑을 수행 한 것이다. DirectX는 Render to textur...

Sliding fadeout effect

붉은색 박스가 A 위치에서 출발하여 B위치 까지 이동하는 경우를 생각해 보자. 첫째, 사실감 있는 이동을 위해서는 A에서는 점점 가속 되다가, B에서는 점점 감속되어야 한다. 둘째, Impact가 있는 이동의 경우 A에서 최고 속도가 될 것이고, B지점에 가까워 질 수록 감속이 되어야 한다. 감속률이 1/2 즉 0.5라고 하고 계산을 하면, ...

Havok Lib

Havok Demo를 보면 크게 두가지 부분으로 나뉜다. 첫째, 물리를 위한 라이브러리. 둘째, 렌더링을 위한 라이브러리. 첫째의 물리를 위한 라이브러리 즉, Havok Physics & Havok Animation은 당연하다 하겠으나, 둘째의 렌더링을 위한 라이브러리도 그 소스가 공개되어 있지않다. 데모에서, hkpRigidBody로 하...

Cartoon rendering using Texture

카툰 렌더링은 첫째 3~4단계의 급격한 명암 변화 둘째 실루엣 엣지 상기한 두 가지를 기반으로 렌더링된다. 첫째의 급격한 명암변화는 아주 쉽게 구현할 수 있다. 렌더링될 버텍스의 법선과 방향성 광원을 내적 하여 나온 값을 이용하면 된다. vertexNormal(버텍스의 법선, 3차원 벡터) lightingDirection(방향성 광원의 ...

Math - Normal vector

법선 [法線, normal] 평면곡선 위의 한 점 P를 지나고, 그 점에서의 접선에 수직인 직선 및 곡면 위의 한 점 P를 지나고 그 점에서의 접평면에 수직인 직선. 이들을 각각 점 P에서의 곡선 및 곡면의 법선이라 한다. 평면곡선 위의 한 점 P에서의 법선은 일반적으로 단 1개 뿐이나, 공간곡선 위의 한 점 P에서의 법선은 무수히 존재한다. 또,...

Catmull-Clark

Catmull-Clark subdivision surface 모든 Vertex는 1. 자신을 정점으로 하는 쿼드와 2. 자신과 Edge로 연결된 정점을 알아야 한다. 폴리곤 기본 구성 단위는 쿼드. Catmull-Clark 을 거친 Triangle는 3개의 Quad가 생성된다. Quad에 대해 Catmull-Clark subdivision을 하...

OpenGL Math

#ifndef JRR_MATH_H #define JRR_MATH_H #include <math.h> #include "jrrVector.h" #include "jrrMatrix.h" #include "jrrQuaternion.h" #define JRR_PI 3.1415926535897f namespace jrr{ typedef Vec...

.x file exporter

3ds max에서 biped를 이용하여 skinned mesh animation을 .x file format로 export할 때, 반드시 mesh의 pivot를 초기화 시켜주어야 하는 듯 하다. ( 내가 사용하고 있는 exporter의 특성인 듯도 하다. Panda exporter )

ragdoll in 3ds max

Export parameters in 3ds max 9.0 This is parametric tree.

wiimote(Nintendo) + flash(Adobe)

flash에서 wiimote를 사용하기 위한 방법에 대해 알아본다. flash에 wiimote를 적용해야만 하는 특별한 이유가 있음은 아니고 익숙한 flash를 이용하여 비교적 간단한 어플을 빠른 속도로 제작할 수 있기 때문. 여타 더 좋은 방법이 있을 지도 모르나 우선 생각난 것은 소켓통신. A1. VS2005 C++을 이용한 서버. ...

Havok ragdoll test

Ragdoll, No Constraint ##Ragdoll, Apply Constraint

Havok vehicle test

Vehicle Test. 128 x 128Heightmap Terrain 4Tire-Vehicle.

Havok cube tower test

Setting Value Box Restitution: 0.5 Friction: 0.5 Max Angular Velocity: 200 Max Linear Velocity: 200 Plane ...

OpenCV - to grayscale

#include <cv.h> #include <highgui.h> #include <stdio.h> #pragma comment(lib, "cxcore.lib") #pragma comment(lib, "cv.lib") #pragma comment(lib, "highgui.lib") #pragma comment(lib...

Install OpenCV

1. 설치파일 다운로드 http://sourceforge.net/projects/opencvlibrary에서 설치파을 다운 가능. 2. 설치 3. VS에서 Include, Lib 경로 설정 include c:/program files/OpenCV/cxcore/include c:/program files/OpenCV/cv/include ...

Havok Physics Setting (VisualStudio2005)

Havok Physics~! RagDoll에서 만큼은 PhysX 보다 뛰어나다 할 수 있다. <C++ - 일반> 하복경로/Source/ <링커 - 추가 라이브러리 디렉터리> 하복경로/Lib/win32_net_8-0/debug_multithreaded 또는 하복경로/Lib/win32_net_8-0/(이 디렉토리로 이동해 보면 ...

PhysX - Center Of Mass

긴 화살표가 velocity를 나타내는데, 지나치게 클 경우 pass-through 현상 발생. 화살표의 시작점이 Center Of Mass 인데, Next Frame에서 Center Of Mass가 바운딩 될 surface를 지나쳤을 경우 이 문제가 발생한다.

Detecting Memory Leaks

1. Header 인클루드 #include<crtdbg.h> 2. 구문 추가 - 시작 부분 프로그램의 시작부분에 아래와 같이 추가 _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF); 3. 구문 추가 - 종료 부분 프로그램 종료 부분에 를 추가. _CrtDumpMemo...

Thread Synchronization

쓰레드간 동기화 멀티쓰레드는 개요에서 말했듯이 한 프로세스를 여러 역할에 따라 여러 개의 쓰레드로 나뉘어 작업하는 방식이므로 각 쓰레드간의 동기화가 필요하다. 동시에 복수개의 코드가 같은 주소영역에서 실행됨으로써 서로 간섭하고 영향을 주는 경우가 빈번하기 때문이다. 멀티쓰레드의 가장 큰 문제점은 공유자원(주로 메모리의 전역변수)을 보호하기가 어렵다...

PhysX by nVidia

nVidia에서 PhysX를 CUDA로 포팅 완료 했다는데, 무엇을 의미하는지 자세히는 모르겠다. GPU에서 물리연산? 물리연산에 GPU가 CPU보다 유리할 것 같기는 한데, 렌더링에도 바쁜 GPU에 물리 연산의 부담까지 추가하여 더 느려지는 건 아닐지.. 현재 Nvidia PhysX SDK 2.8.1 Available 이며 로고는 다음과 같다. ...