{"id":4500,"date":"2018-08-31T20:10:26","date_gmt":"2018-08-31T12:10:26","guid":{"rendered":"http:\/\/www.bookcard.net\/wordpress\/?p=4500"},"modified":"2018-10-14T21:27:15","modified_gmt":"2018-10-14T13:27:15","slug":"android_game_light_spot","status":"publish","type":"post","link":"https:\/\/www.bookcard.net\/wordpress\/android_game_light_spot\/","title":{"rendered":"Android\u904a\u6232\u4e4b\u5c04\u71c8"},"content":{"rendered":"<figure id=\"attachment_4501\" aria-describedby=\"caption-attachment-4501\" style=\"width: 1200px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/www.bookcard.net\/wordpress\/wp-content\/uploads\/2018\/08\/Android_Game_Light_Spot.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-4501\" src=\"https:\/\/www.bookcard.net\/wordpress\/wp-content\/uploads\/2018\/08\/Android_Game_Light_Spot.jpg\" alt=\"\" width=\"1200\" height=\"800\" srcset=\"https:\/\/www.bookcard.net\/wordpress\/wp-content\/uploads\/2018\/08\/Android_Game_Light_Spot.jpg 1200w, https:\/\/www.bookcard.net\/wordpress\/wp-content\/uploads\/2018\/08\/Android_Game_Light_Spot-300x200.jpg 300w, https:\/\/www.bookcard.net\/wordpress\/wp-content\/uploads\/2018\/08\/Android_Game_Light_Spot-768x512.jpg 768w, https:\/\/www.bookcard.net\/wordpress\/wp-content\/uploads\/2018\/08\/Android_Game_Light_Spot-1024x683.jpg 1024w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/a><figcaption id=\"caption-attachment-4501\" class=\"wp-caption-text\">Android\u904a\u6232\u4e4b\u5c04\u71c8<\/figcaption><\/figure>\n<p>\u5c04\u71c8\u662fOpenGL ES\u4e2d\u71c8\u5149\u4e2d\u6700\u8017GPU\u8cc7\u6e90\u71c8\u5149.\u4f46\u51763D\u6548\u679c\u5341\u5206\u903c\u771f.\u7747\u4e0a\u5716.\u5c04\u71c8\u6709\u591a\u500b\u53c3\u6578\u9700\u6307\u5b9a.\u300e\u4f4d\u7f6e\u300f\u300e\u7167\u5c04\u65b9\u5411\u300f\u300e\u7167\u5c04\u89d2\u5ea6\u300f\u5c0f\u65bc180\u5ea6\u3001\u300e\u8870\u6e1b\u6307\u6578\u300f\u5c0f\u65bc\u96f6,\u82e5\u8a2d\u70ba0\u5247\u4eae\u5ea6\u4e0d\u8870\u6e1b,\u5be6\u5236\u300e\u8870\u6e1b\u503c\u300f\u8207\u904a\u62323D\u7a7a\u9593\u5c3a\u5bf8\u6709\u95dc.\u9019\u88e1\u8a2d\u70ba0.01.\u4ee5\u53ca\u4e09\u500b\u5149\u7167\u984f\u8272\u300e\u74b0\u5883\u8272\u300f\u300e\u6f2b\u53cd\u5c04\u8272\u300f\u300e\u93e1\u9762\u53cd\u5c04\u8272\u300f<\/p>\n<p>public class LightSpot {<\/p>\n<p>private float[] ambient\u00a0 = {1.0f, 1.0f, 1.0f, 1.0f};\/\/ \u5c04\u71c8-\u74b0\u5883\u8272<\/p>\n<p>private float[] diffuse\u00a0 = {1.0f, 1.0f, 1.0f, 1.0f};\/\/ \u5c04\u71c8-\u6f2b\u53cd\u5c04\u8272<\/p>\n<p>private float[] specular = {0.0f, 0.0f, 0.0f, 1.0f};\/\/ \u5c04\u71c8-\u9ad8\u5149\u984f\u8272<\/p>\n<p>private float[] position = {0.0f, 3.0f, 0.0f, 1.0f};\/\/ \u5c04\u71c8-\u4f4d\u7f6e<\/p>\n<p>private float[] direction = {0.0f, -1.0f, 0.0f, 0.0f};\/\/ \u5c04\u71c8-\u65b9\u5411<\/p>\n<p>private float\u00a0 cutoff\u00a0\u00a0\u00a0 = 45;\/\/ \u5c04\u71c8-\u89d2\u5ea6\u7bc4\u570d,\u7f3a\u7701\u70ba180.0<\/p>\n<p>private float\u00a0 exponent\u00a0 = 0.01f;\/\/ \u8870\u6e1b\u6307\u6578,\u7f3a\u7701\u70ba0.0f<\/p>\n<p>int\u00a0\u00a0\u00a0\u00a0 id = 0;\/\/ \u5149\u7167ID<\/p>\n<p>\/\/ \u5c04\u71c8ID \u8f38\u5165:GL10.GL_LIGHT0\u81f3GL10.GL_LIGHT7<\/p>\n<p>LightSpot(int ID){<\/p>\n<p>this.id = ID;<\/p>\n<p>}<\/p>\n<p>\/\/\u8a2d\u7f6e\u5c04\u71c8\u65b9\u5411,\u8f49\u63db\u70ba\u65b9\u5411\u5411\u91cf.\u6700\u5f8cw\u5206\u91cf\u8a2d0,\u4ee3\u8868\u65b9\u5411<\/p>\n<p>public void setDirection(float x,float y,float z){<\/p>\n<p>direction[0] = x &#8211; position[0];<\/p>\n<p>direction[1] = y &#8211; position[1];<\/p>\n<p>direction[2] = z &#8211; position[2];<\/p>\n<p>direction[3] = 0;<\/p>\n<p>}<\/p>\n<p>\/\/ \u8a2d\u5b9a\u5c04\u71c8\u4f4d\u7f6e.w\u5206\u91cf\u8a2d\u70ba1\u4ee3\u8868\u4f4d\u7f6e\u5411\u91cf<\/p>\n<p>public void setPosition(float x,float y,float z){<\/p>\n<p>position[0] = x;<\/p>\n<p>position[1] = y;<\/p>\n<p>position[2] = z;<\/p>\n<p>position[3] = 1;<\/p>\n<p>}<\/p>\n<p>\/\/ \u8a2d\u5b9a\u5c04\u71c8\u984f\u8272<\/p>\n<p>public void setColor(float r,float g,float b){<\/p>\n<p>ambient[0] = r;<\/p>\n<p>ambient[1] = g;<\/p>\n<p>ambient[2] = b;<\/p>\n<p>ambient[3] = 1;<\/p>\n<p>}<\/p>\n<p>\/\/\u4f7f\u80fd\u5c04\u71c8<\/p>\n<p>public void enable(){<\/p>\n<p>GL10 gl = GRAPHICS.gl;<\/p>\n<p>gl.glEnable(id);\/\/\u4f7f\u80fd<\/p>\n<p>gl.glLightfv(id,GL10.GL_AMBIENT, ambient, 0);\/\/ \u5c04\u71c8-\u74b0\u5883\u8272<\/p>\n<p>gl.glLightfv(id,GL10.GL_DIFFUSE, diffuse, 0);\/\/ \u5c04\u71c8-\u6f2b\u53cd\u5c04\u8272<\/p>\n<p>gl.glLightfv(id,GL10.GL_SPECULAR, specular, 0);\/\/ \u5c04\u71c8-\u9ad8\u5149\u984f\u8272<\/p>\n<p>gl.glLightfv(id,GL10.GL_POSITION, position, 0);\/\/ \u4f4d\u7f6e<\/p>\n<p>gl.glLightfv(id,GL10.GL_SPOT_DIRECTION, direction, 0);\/\/ \u65b9\u5411<\/p>\n<p>gl.glLightf(id,GL10.GL_SPOT_CUTOFF,cutoff); \/\/\u00a0 \u89d2\u5ea6\u7bc4\u570d<\/p>\n<p>gl.glLightf(id,GL10.GL_SPOT_EXPONENT,exponent);\/\/ \u8870\u6e1b\u6307\u6578<\/p>\n<p>}<\/p>\n<p>\/\/ \u5c4f\u853d\u5c04\u71c8<\/p>\n<p>public void disable(){<\/p>\n<p>GL10 gl = GRAPHICS.gl;<\/p>\n<p>gl.glDisable(id);<\/p>\n<p>}<\/p>\n<p>}<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5c04\u71c8\u662fOpenGL ES\u4e2d\u71c8\u5149\u4e2d\u6700\u8017GPU\u8cc7\u6e90\u71c8\u5149.\u4f46\u51763D\u6548\u679c\u5341\u5206\u903c\u771f.\u7747\u4e0a\u5716.\u5c04\u71c8\u6709\u591a\u500b\u53c3\u6578\u9700\u6307\u5b9a.\u300e\u4f4d\u7f6e &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.bookcard.net\/wordpress\/android_game_light_spot\/\" class=\"more-link\">\u7e7c\u7e8c\u95b1\u8b80 <span class=\"screen-reader-text\">Android\u904a\u6232\u4e4b\u5c04\u71c8<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,62],"tags":[2,50],"class_list":["post-4500","post","type-post","status-publish","format-standard","hentry","category-android","category-opengl","tag-android","tag-opengl","entry"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/posts\/4500","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/comments?post=4500"}],"version-history":[{"count":1,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/posts\/4500\/revisions"}],"predecessor-version":[{"id":4502,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/posts\/4500\/revisions\/4502"}],"wp:attachment":[{"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/media?parent=4500"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/categories?post=4500"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/tags?post=4500"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}