13.07.2015 Views

Mali GPU User Interface Engine Application Development Guide

Mali GPU User Interface Engine Application Development Guide

Mali GPU User Interface Engine Application Development Guide

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Tutorial on Drawing 3D Shapescontext->setUniform("cameraPosition", camPos);float cyl_radius = sqrt(30.0f);vec3 shadow_info[2] ={calculate_cyl_info(vec2(-30.0, -30.0), cyl_radius, vec2(light0position.x, light0position.y), 0.0),calculate_cyl_info(vec2( 30.0, 30.0), cyl_radius, vec2(light0position.x, light0position.y), 0.0)};context->setUniform("shadow_info[0]", shadow_info[0]);context->setUniform("shadow_info[1]", shadow_info[1]);...traverseDraw(scene->getTree(0), context);6. Example 4-63 shows the vertex shader code for the environment:Example 4-63 Environment vertex shader lightshow.vert...uniform mat4 WORLD;uniform mat4 INV_TRANS_WORLD;uniform mat4 VIEW_PROJECTION;uniform vec3 cameraPosition;uniform vec3 light0position;uniform vec3 light1position;uniform vec3 light2position;attribute vec4 POSITION;attribute vec2 TEXCOORD0;attribute vec3 NORMAL;attribute vec3 BINORMAL;attribute vec3 TANGENT;varying vec2 outTexcoord;varying vec3 oPos;varying vec3 tViewDir;/* lights */varying vec3 oLight0Dir;varying vec3 tLight0Dir;varying vec3 oLight1Dir;varying vec3 tLight1Dir;void main(){oPos = (WORLD * POSITION).xyz;gl_Position = VIEW_PROJECTION * vec4(oPos, 1);outTexcoord.xy = TEXCOORD0 * vec2(1,-1);mat3 m = mat3(INV_TRANS_WORLD[0].xyz, INV_TRANS_WORLD[1].xyz,INV_TRANS_WORLD[2].xyz);mat3 tangentSpace = mat3(m * TANGENT, m * BINORMAL, m * NORMAL);vec3 oViewDir = oPos - cameraPosition;ARM DUI 0527A-02a Copyright © 2010 ARM. All rights reserved. 4-51ID070710Non-Confidential - Draft - Beta

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!