OpenGL ES 2.0의 조명 사용법을 설명하고 보여주는 자습서 나 샘플 코드를 찾으려고합니다. 제가 온라인에서 본 자료의 대부분은 Opengl ES 1.1을 가리 킵니다.OpenGL ES 2.0을 사용하여 광원을 어떻게 적용합니까?
누구나 OpenGL ES 2.0에서 조명을 수행하는 방법에 대한 링크 나 설명서를 제공 할 수 있습니까?
OpenGL ES 2.0의 조명 사용법을 설명하고 보여주는 자습서 나 샘플 코드를 찾으려고합니다. 제가 온라인에서 본 자료의 대부분은 Opengl ES 1.1을 가리 킵니다.OpenGL ES 2.0을 사용하여 광원을 어떻게 적용합니까?
누구나 OpenGL ES 2.0에서 조명을 수행하는 방법에 대한 링크 나 설명서를 제공 할 수 있습니까?
OpenGL ES 2.0의 어려움은 원하는 방식으로 자신 만의 쉐이더를 작성할 수 있기 때문에 객체에 조명을 제공하는 설정 방법이 없다는 것입니다. 콘텐츠를 어떻게 표시할지에 따라 다릅니다.
그렇다면 가벼운 방향을 제공하고 각 꼭지점에서 빛의 강도를 계산하는 등의 작업을 수행하여 OpenGL ES 1.1의 고정 함수 조명 기능을 복제 할 수 있습니다. this sample application에서 예를 볼 수 있습니다. 제 수업 중 하나를 위해 함께 쳤습니다. 정합 단편 쉐이더
attribute vec4 position;
attribute vec4 normal;
varying float lightIntensity;
uniform mat4 modelViewProjMatrix;
uniform vec3 lightDirection;
void main()
{
vec4 newNormal = modelViewProjMatrix * normal;
vec4 newPosition = modelViewProjMatrix * position;
gl_Position = newPosition;
lightIntensity = max(0.0, dot(newNormal.xyz, lightDirection));
}
:
varying highp float lightIntensity;
void main()
{
lowp vec4 yellow = vec4(1.0, 1.0, 0.0, 1.0);
gl_FragColor = vec4((yellow * lightIntensity * 0.2).rgb, 1.0);
}
광 방향의 내적 그 정점에서의 법선의 계산에 사용된다
여기서 사용 버텍스 쉐이더는 다음과 빛의 강도는 그 정점에서 보는 사람의 눈을 때린다. 이 빛의 강도는 각 삼각형의 꼭지점 사이에 삽입되어 각 조각마다 강도를 부여합니다.
오픈 소스 Molecules 응용 프로그램에서 픽셀 당 조명을 좀 더 발전 시켰습니다. 각 구체와 원통은 실제로 사각형 내에있는 raytraced 사기꾼입니다. 각 픽셀에 대해 가상 객체의 해당 점에서 반사 및 주변 조명 기여도를 계산 한 다음이를 모델 로딩시 계산 된 앰비언트 오 클루 전 계수와 결합합니다. 조명으로 할 수있는 것의 다른 극단적 인 부분이 있습니다. 그러나 코드를 파헤 치면이 작동 방식에 대해 my little writeup을 읽어보십시오.
Brad에게 감사드립니다.이 코드는 매우 도움이 될 것입니다.이 문제에 대해 많은 시간을 할애했으며, 제공 한 소스 코드가 결승선에 가장 도움이 될 것이라고 생각합니다. 내 경험을 잠시 후에 게시 할 것입니다. 추신. – Abhi
@ user1200008 이상의 평판 포인트를 추가 할 수있는 방법이 있었으면합니다. - 내 iTunes U 과정에 관심이 있습니다. 여기에서 내가 사용했던 OpenGL ES 2.0 클래스를 찾을 수 있습니다. http://itunes.apple .com/WebObjects/MZStore.woa/wa/viewCourse? id = 497193807 & s = 143441 & ls = 1 –
사실 나는 질문이 있습니다. 현재 내 지오메트리는 간단한 큐브로 구성됩니다. 나는 이것에 대한 법선을 어떻게 계산할 수 있는지 알고 싶었습니다. – Abhi
질문을 다시 말하게하십시오. 누군가가 쉐이더를 사용하여 광원을 구현하는 방법을 보여주는 자습서를 알고 있습니까? – Abhi