Я пытаюсь получить this tutorial, но я столкнулся с двумя проблемами, одним из которых является следующее.Почему мне нужно определить значение точности в шейдерах webgl?
Когда я запускаю код, как есть, я получаю сообщение об ошибке в шейдере фрагмента: THREE.WebGLShader: gl.getShaderInfoLog() ERROR: 0:2: '' : No precision specified for (float)
. Так что я сделал, указав точность для каждого float/vector, который я определяю так varying highp vec3 vNormal
. Это устраняет ошибку, но я не понимаю почему? Я не могу найти другого примера, в котором значения точности добавляются к объявлениям переменных. Может ли кто-нибудь объяснить, почему это происходит? Связано ли это с моим браузером (Chrome 38)?
Получает ли это сообщение свет? http://stackoverflow.com/questions/5366416 – vabada
В ответ на название вашего вопроса ответ в основном «потому что спецификация говорит так». WebGL основан на спецификации OpenGL ES 2.0, и для спецификации требуется указать точность. – gman