小编Ben*_*Ben的帖子

Shader在iOS上看起来很糟糕但在Windows上很好

我正在为Windows和iOS开发跨平台渲染器.对于一个示例应用程序,我编写了一个在两个平台上都没有问题的着色器(Windows上的着色器版本"#version 120"和iOS上的"#version 100").

接下来我添加了两个光源,在iOS上,奇怪的事情开始发生.我改变了我的代码几次,但它从未向我展示预期的结果(使用只有一个灯光的着色器渲染火炬,这就是为什么它在iOS上看起来很好).

(1)有时一切都是一种颜色:

在此输入图像描述

(2)有时它看起来很糟糕:

在此输入图像描述

在Windows上,它看起来像我期望它看起来:

在此输入图像描述

有谁知道为什么我的着色器在iOS上这样做?

这是(2)的片段着色器:

//Light
uniform mediump float  numLights;
//L0
uniform mediump vec4   lightPosition_0;
uniform mediump vec3   lightColor_0;
uniform mediump float  lightIntensity_0;
uniform mediump float  lightAttenuation_0;
//L1
/*same as for light 0 */
//L2
/*same as for light 0 */

uniform mediump vec3    ambientColor;

uniform mediump vec3 Ka;
uniform mediump vec3 Kd;
uniform mediump vec3 Ks;

uniform sampler2D NormalMap;
uniform sampler2D DiffuseMap;
uniform sampler2D SpecularMap;

varying highp vec4 texCoordVarying;

varying highp vec4 posWorldSpace;       // pos …
Run Code Online (Sandbox Code Playgroud)

opengl glsl ios opengl-es-2.0 glsles

0
推荐指数
1
解决办法
139
查看次数

标签 统计

glsl ×1

glsles ×1

ios ×1

opengl ×1

opengl-es-2.0 ×1