Форум программистов, компьютерный форум, киберфорум
JavaScript: HTML5 Canvas
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456

Почему нет окраса, сетка точек

29.12.2020, 15:58. Показов 821. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Так рисует
Название: ScreenShot01027.jpg
Просмотров: 49

Размер: 13.7 Кб
JavaScript
1
2
3
4
5
6
7
8
9
10
        var fragmentShaderSource =
            `void main()
            {             
                // float x = gl_FragCoord.x;
                // float r = 0.5+0.45*sin(0.02*x+1.0);
                // float g = 0.5+0.45*sin(0.02*x+2.0);
                // float b = 0.5+0.45*sin(0.02*x+3.0);
                // gl_FragColor = vec4(r, g, b, 1.0);
                gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
            }`;
А так нет
JavaScript
1
2
3
4
5
6
7
8
9
       var fragmentShaderSource =
            `void main()
            {             
                float x = gl_FragCoord.x;
                float r = 0.5+0.45*sin(0.02*x+1.0);
                float g = 0.5+0.45*sin(0.02*x+2.0);
                float b = 0.5+0.45*sin(0.02*x+3.0);
                gl_FragColor = vec4(r, g, b, 1.0);
                //gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);

PHP/HTML
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
<!DOCTYPE html>
<html lang="en">
 
<head>
    <meta charset="UTF-8">
    <title>array draw</title>
</head>
 
<body>
    <canvas id="renderCanvas" width="100" height="100" style="border: 1px solid 

#aaaafa"></canvas>
 
    <script>
        var vertexShaderSource =
            `attribute vec2 a_Position;
 
            void main()
            {
                gl_Position = vec4(a_Position, 0.0, 1.0);
                gl_PointSize = 4.0;
            }`;
 
        var fragmentShaderSource =
            `void main()
            {             
                float x = gl_FragCoord.x;
                float r = 0.5+0.45*sin(0.02*x+1.0);
                float g = 0.5+0.45*sin(0.02*x+2.0);
                float b = 0.5+0.45*sin(0.02*x+3.0);
                gl_FragColor = vec4(r, g, b, 1.0);
                //gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
            }`;
 
        function main()
        {
            var gl = document.getElementById("renderCanvas").getContext("webgl");
 
            var vShader = gl.createShader(gl.VERTEX_SHADER);
            gl.shaderSource(vShader, vertexShaderSource);
            gl.compileShader(vShader);
 
            var fShader = gl.createShader(gl.FRAGMENT_SHADER);
            gl.shaderSource(fShader, fragmentShaderSource);
            gl.compileShader(fShader);
 
            var program = gl.createProgram();
            gl.attachShader(program, vShader);
            gl.attachShader(program, fShader);
            gl.linkProgram(program);
            gl.useProgram(program);
 
            var a_Position = gl.getAttribLocation(program, "a_Position");
 
            var pointsNumX=10;
            var pointsNumY=10;
    
            var dx=1.8/pointsNumX;
            var dy=1.8/pointsNumY;
 
            for(var x1=-0.9;x1<0.9;x1+=dx)
            {
                for(var y1=-0.9;y1<0.9;y1+=dy)
                {
                    var x=x1; 
                    var y=y1; 
                    gl.vertexAttrib2f(a_Position, x, y);
                    gl.drawArrays(gl.POINTS, 0, 1);                
                }
            }
 
 
 
        }
        main();
    </script>
</body>
 
</html>
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.12.2020, 15:58
Ответы с готовыми решениями:

Сетка из точек на мониторе
Что делатьть точки призапуске винды и точки возле ярлыков а при запуске игр ваше сетка из точек!!!!

Почему в chart появляется вторая сетка?
Почему появляется вторая сетка и за этого съезжают линии и сетка?

Определить радиус и центр наибольшей окружности в области заданных точек, внутри которой нет точек
Определить радиус и центр наибольшей окружности в области заданных точек, внутри которой нет точек Помогите пожалуйста,точки нужно задать...

1
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
29.12.2020, 16:38  [ТС]
почему так не работает?
JavaScript
1
2
3
4
5
6
7
8
9
10
        var fragmentShaderSource =
            `void main()
            {         
                //float x = gl_FragCoord.x;
                float r = 0.5+0.45*sin(0.02*a_Position.x+1.0);
                float g = 0.5+0.45*sin(0.02*a_Position.x+2.0);
                float b = 0.5+0.45*sin(0.02*a_Position.x+3.0);
                gl_FragColor = vec4(r, g, b, 1.0);
                //gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
            }`;
Добавлено через 16 минут
Поменял на юниформ.
JavaScript
1
2
3
4
5
            `//attribute vec2 a_Position;
            uniform vec2 u_Position;
 
            //var a_Position = gl.getAttribLocation(program, "a_Position");
            var a_Position = gl.getUniformLocation(program, "a_Position");
Написание большие маленькие правильное gl.getUniformLocation?
В инете по разному укзано.
Как получать отладку у меня GL 2.1. Как получать ошибки?

HTML5
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
<!DOCTYPE html>
<html lang="en">
 
<head>
    <meta charset="UTF-8">
    <title>array draw</title>
</head>
 
<body>
    <canvas id="renderCanvas" width="100" height="100" style="border: 1px solid 

#aaaafa"></canvas>
 
    <script>
        var vertexShaderSource =
            `//attribute vec2 a_Position;
            uniform vec2 u_Position;
 
 
            void main()
            {
                gl_Position = vec4(a_Position, 0.0, 1.0);
                gl_PointSize = 4.0;
            }`;
 
        var fragmentShaderSource =
            `void main()
            {         
                //float x = gl_FragCoord.x;
                float r = 0.5+0.45*sin(0.02*a_Position.x+1.0);
                float g = 0.5+0.45*sin(0.02*a_Position.x+2.0);
                float b = 0.5+0.45*sin(0.02*a_Position.x+3.0);
                gl_FragColor = vec4(r, g, b, 1.0);
                //gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
            }`;
 
        function main()
        {
            var gl = document.getElementById("renderCanvas").getContext("webgl");
 
            var vShader = gl.createShader(gl.VERTEX_SHADER);
            gl.shaderSource(vShader, vertexShaderSource);
            gl.compileShader(vShader);
 
            var fShader = gl.createShader(gl.FRAGMENT_SHADER);
            gl.shaderSource(fShader, fragmentShaderSource);
            gl.compileShader(fShader);
 
            var program = gl.createProgram();
            gl.attachShader(program, vShader);
            gl.attachShader(program, fShader);
            gl.linkProgram(program);
            gl.useProgram(program);
 
            //var a_Position = gl.getAttribLocation(program, "a_Position");
            var a_Position = gl.getUniformLocation(program, "a_Position");
 
            var pointsNumX=10;
            var pointsNumY=10;
    
            var dx=1.8/pointsNumX;
            var dy=1.8/pointsNumY;
 
            for(var x1=-0.9;x1<0.9;x1+=dx)
            {
                for(var y1=-0.9;y1<0.9;y1+=dy)
                {
                    var x=x1; 
                    var y=y1; 
                    gl.vertexAttrib2f(a_Position, x, y);
                    gl.drawArrays(gl.POINTS, 0, 1);                
                }
            }
 
 
 
        }
        main();
    </script>
</body>
 
</html>
Добавлено через 11 минут
Если у меня пару млн. точек и тяжелые для процессора формулы.
Как заполнить и рисовать вершины внутри шейдеров? В книгах заполняют массивы на JS вне шейдеров, мне неподходит. Юниформ будет принимать только настройки.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
      var vertexShaderSource =
            `attribute vec2 a_Position;
 
            void main()
            {
                gl_Position = vec4(a_Position, 0.0, 1.0);
                gl_PointSize = 4.0;
 
            float dx=1.8/10;
            float dy=1.8/10;
 
                for(float x1=-0.9;x1<0.9;x1+=dx)
                {
                    for(float y1=-0.9;y1<0.9;y1+=dy)
                    {
                        float x=x1; 
                        float y=y1; 
                        gl.vertexAttrib2f(a_Position, x, y);
                        gl.drawArrays(gl.POINTS, 0, 1);                
                    }
                } 
             
            }`;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.12.2020, 16:38
Помогаю со студенческими работами здесь

Определить радиус и центр наибольшей окружности в области заданных точек, внутри которой нет точек
Определить радиус и центр наибольшей окружности в области заданных точек, внутри которой нет точек задать точки через массив и оформить...

нет точек востановления
перестали создаваться точки встановления.подскажите как исправить пожалуйста.

Нет функционала для создания точек восстановления системы
Подскажите, пожалуйста, в чем проблема, нет интерфейса для создания точек восстановления и нет соответственно ни одной точки. Издержки...

Восстановление запуска (нет точек восстановления) после обновлений
Доброго времени суток всем. следующая проблема после обновлений такова. Выбрав &quot;Устранение неполадок компьютора&quot; в...

Почему массив точек задается в фигурных скобках
PointF point= new PointF { v, v, v, v }; Объясните, пожалуйста, мне что значит в фигурных скобках v.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru