역 기구학 및 모프 타겟을 기반으로 실시간 캐릭터 애니메이션 작업에 전념하고 있습니다.iPhone SDK가 포함 된 OpenGL ES에서 쉐이더 사용 방법
오픈 소스 (FLTK 기반, 슬프게도) IK 체인 스타일의 애니메이션 프로그램 인 Animata를 통해 공정한 방법을 얻었습니다. 심지어 렌더링 코드를 다양한 플랫폼 (Java/Processing 및 iPhone)에 이식하기도했습니다. alt video http://ats.vimeo.com/612/732/61273232_100.jpgvideo of Animata renderers
그러나 코드가 특히 최적화되어 있으며 CPU 각 프레임을 렌더링하는 것은 약간 불필요 해 보인다.
나는 지금은 '두 개의 뼈 스키닝 쉐이더'
// A vertex shader that efficiently implements two bone skinning.
attribute vec4 a_position;
attribute float a_joint1, a_joint2;
attribute float a_weight1, a_weight2;
uniform mat4 u_skinningMatrix[JOINT_COUNT];
uniform mat4 u_modelViewProjectionMatrix;
void main(void)
{
vec4 p0 = u_skinningMatrix[int(a_joint1)] * a_position;
vec4 p1 = u_skinningMatrix[int(a_joint2)] * a_position;
vec4 p = p0 * a_weight1 + p1 * a_weight2;
gl_Position = u_modelViewProjectionMatrix * p;
}
에 대한 코드를 발견 실시간 캐릭터 애니메이션에 크게 의존 아이 패드 응용 프로그램을 만들기 위해 프로젝트를 시작하고, 아이폰 OS 문서를 넘기는하고
아무도 이런 스 니펫을 어떻게 사용하는지 알 수 없습니까? 아주 적은 문맥으로 제시됩니다. 제가하고 싶은 것은 IK 체인 뼈대 애니메이션을하기 위해서 제가해야 할 일이지만, GPU에서하고 싶습니다.
Apple 개발자 도구에 포함 된 OpenGL Shader Builder를 살펴 보는 것도 좋습니다. 유니폼 변수를 추가한다고해서 셰이더 코드에서이 변수를 실제로 참조 할 때까지 (내가 너무 오랫동안 내 머리를 긁적 거리게 만들 때까지) 놀 수있는 무언가로 나타나지는 않습니다. Joe의 예제는 대부분 Shader Builder에서 테스트 할 수 있으므로 원칙을 중심으로 머리를 쓰려면 C를 모두 작성할 필요가 없습니다. –