aboutsummaryrefslogtreecommitdiff
path: root/files/ru/web/api/webglrenderingcontext/uniform/index.html
blob: 91a02ac2b97c710cd58f242481b809909a689aa5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
---
title: 'WebGLRenderingContext.uniform[1234][fi][v]()'
slug: Web/API/WebGLRenderingContext/uniform
translation_of: Web/API/WebGLRenderingContext/uniform
---
<div>{{APIRef("WebGL")}}</div>

<p><strong><code>WebGLRenderingContext.uniform[1234][fi][v]()</code></strong> метод <a href="/en-US/docs/Web/API/WebGL_API">WebGL API</a> устанавливает значение для постоянных переменных Uniform.</p>

<div class="note">
<p>Многие из описанных в этом разделе функцию имеют расширенные интерфейсы WebGL 2, которые можно найти {{domxref("WebGL2RenderingContext.uniform","WebGL2RenderingContext.uniform[1234][uif][v]()")}}.</p>
</div>

<h2 id="Синтаксис">Синтаксис</h2>

<pre>gl.uniform1f (floatUniformLoc, v); // для float
gl.uniform1fv(floatUniformLoc, [v]); // для float или массива float
gl.uniform2f (vec2UniformLoc, v0, v1); // для vec2
gl.uniform2fv(vec2UniformLoc, [v0, v1]); // для vec2 или массива vec2
gl.uniform3f (vec3UniformLoc, v0, v1, v2); // для vec3
gl.uniform3fv(vec3UniformLoc, [v0, v1, v2]); // для vec3 или массива vec3
gl.uniform4f (vec4UniformLoc, v0, v1, v2, v4); // для vec4
gl.uniform4fv(vec4UniformLoc, [v0, v1, v2, v4]); // для vec4 или массива vec4

gl.uniform1i (intUniformLoc, v); // для int
gl.uniform1iv(intUniformLoc, [v]); // для int или массива int
gl.uniform2i (ivec2UniformLoc, v0, v1); // для ivec2
gl.uniform2iv(ivec2UniformLoc, [v0, v1]); // для ivec2 или массива ivec2
gl.uniform3i (ivec3UniformLoc, v0, v1, v2); // для ivec3
gl.uniform3iv(ivec3UniformLoc, [v0, v1, v2]); // для ivec3 или массива ivec3
gl.uniform4i (ivec4UniformLoc, v0, v1, v2, v4); // для ivec4
gl.uniform4iv(ivec4UniformLoc, [v0, v1, v2, v4]); // для ivec4 или массива ivec4


gl.uniform1i (sampler2DUniformLoc, v); // для sampler2D (текстуры)
gl.uniform1iv(sampler2DUniformLoc, [v]); // для sampler2D или массива sampler2D


gl.uniform1i (samplerCubeUniformLoc, v); // для samplerCube (текстуры)
gl.uniform1iv(samplerCubeUniformLoc, [v]); // для samplerCube или массива samplerCube
</pre>

<h3 id="Параметры">Параметры</h3>

<dl>
 <dt>location</dt>
 <dd>{{domxref("WebGLUniformLocation")}} объект содержащий uniform атрибут для его изменения.</dd>
 <dt><code>value, v0, v1, v2, v3</code></dt>
 <dd>Новое значение для uniform переменной. Допустимые типы:
 <ul>
  <li>Тип float {{jsxref("Number")}} для этого типа (методы с "f").</li>
  <li>Последовательность чисел с плавающей точкой (пример {{jsxref("Float32Array")}} или {{jsxref("Array")}} чисел) для векторных методов с плавающей точкой (методы с "fv").</li>
  <li>Тип  {{jsxref("Number")}} для этого типа (методы с "i").</li>
  <li>{{jsxref("Int32Array")}} вектор чисел {{jsxref("Number")}} (методы с "iv").</li>
 </ul>
 </dd>
</dl>

<h3 id="Возвращаемое_значение"><span style="background-color: #333333; letter-spacing: -0.00278rem;">Возвращаемое значение </span></h3>

<p><span style="background-color: #ffffff; color: #333333; font-family: Arial,x-locale-body,sans-serif; font-size: 1rem; letter-spacing: -0.00278rem;">None.</span></p>

<h2 id="Примеры">Примеры</h2>

<pre class="brush: js">GL.uniform1f(GL.getUniformLocation(PROGRAM,'u_time'), timeStamp/1000.0)</pre>

<h2 id="Спецификация">Спецификация</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">Specification</th>
   <th scope="col">Status</th>
   <th scope="col">Comment</th>
  </tr>
  <tr>
   <td>{{SpecName('WebGL', "#5.14.10", "uniform")}}</td>
   <td>{{Spec2('WebGL')}}</td>
   <td>Initial definition.</td>
  </tr>
  <tr>
   <td>{{SpecName('OpenGL ES 2.0', "glUniform.xml", "glUniform")}}</td>
   <td>{{Spec2('OpenGL ES 2.0')}}</td>
   <td>Main page of the OpenGL API.</td>
  </tr>
 </tbody>
</table>

<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>

<p class="hidden">Таблица совместимости на этой странице создается из структурированных данных. Если вы хотите внести свой вклад в данные, ознакомьтесь с https://github.com/mdn/browser-compat-data и отправить нам запрос на слияние.</p>

<p>{{Compat("api.WebGLRenderingContext.uniform1f")}}</p>

<h2 id="Смотрите_также">Смотрите также</h2>

<ul>
 <li>{{domxref("WebGLRenderingContext.uniformMatrix()")}}</li>
</ul>