При повороте 3d модели остается след, clearRect не работает?10.12.2021, 05:40. Показов 6700. Ответов 42
Метки нет (Все метки)
С помощью moveTo и lineTo создала несколько 3d-объектов, при нажатии кнопок клавиатуры происходит поворот 3d-объектов однако остается след. В функцию my_down, добавила ctx.clearRect(0, 0, cvs.width, cvs.height);. В этой же функции происходит повторная прорисовка объектов, my_down срабатывает при нажатии кнопки keydown(addEventListener). Не очищается холст и остаются следы. Как исправить? Вот код:
0
|
|||||||||||
| 10.12.2021, 05:40 | |
|
Ответы с готовыми решениями:
42
Canvas. При перемещении объекта остается след Затемнение: при повороте модели не освещаются боковые нормали |
| 11.12.2021, 14:21 | ||||||||||||
|
Я бы на вашем месте лучше бы взял контекст "webgl", а не "2d":
Пример рисования кубика: WebGL-демка в песочнице
0
|
||||||||||||
| 12.12.2021, 06:02 [ТС] | |
|
8Observer8, Здравствуйте нужен движок для создание 3d-мира подскажите сколько объектов может поддерживать WebGL без зависание. Есть у меня движок treejs и несколько примеров где на землю падают кубы и сферы. Но при обработке большого количества объектов на treejs, компьютер начинает зависать. Я обнаружила, что в вашем примере используется библиотека gl-matrix-min.js. Я знаю одну игру похожую на MainCraft, там также используется gl-matrix-min.js.
Mayn Bloks 3d Игра работает нормально без зависания, вот мне интересно можно делать большие игры на Webgl в связке с gl-matrix-min.js. Хотелось бы увидеть реальные проекты с огромным количеством объектов сделанные на WebGL, чтобы протестировать. Какие примеры игр на WebGL вы знаете 8Observer8?
0
|
|
| 12.12.2021, 11:38 | ||||||||||||
Если захотите начать использовать Babylon.js, то вот стартовый пример на JavaScript: skybox-babylonjs-js.zip (88.9 Кб) Демка в песочнице
0
|
||||||||||||
| 12.12.2021, 11:57 | ||
|
0
|
||
| 12.12.2021, 14:35 [ТС] | |
|
8Observer8, нашла еще одну игру называется Quick 3d RPG. Выложили исходный код в открытый доступ. https://github.com/simondevyoutube/Quick_3D_RPG. Эти исходники я загрузила на локальный хост, протестировать. Очень сильно зависает, сделано с помощью библиотеки three.module.js. Что можете сказать про эту игру?
Все модели 3d находятся в папке resources формата "fbx". Я не знаю может просто у меня компьютер слабый поэтому такие тормоза.
1
|
|
| 12.12.2021, 16:04 | |||
|
0
|
|||
| 12.12.2021, 16:53 | |||||||
|
Перевёл ту часть, которая касается Idle-анимации, то есть анимации покоя: Спрайтовая анимация "Fang Idle" на WebGL 2.0 и JavaScript Лист спрайтов (160x50):
0
|
|||||||
| 12.12.2021, 16:57 [ТС] | |
|
Меня еще интересует подходящая платформа куда я смогу загрузить свою игру включая "асcеты". Есть что-нибудь подходящее на примете? Например если сайта нету, то где можно хранить свои файлы, чтобы потом поделиться игрой через iframe?
0
|
|
| 12.12.2021, 17:57 | ||
|
Второй вариант, если у вашей игры будет база данных, например, на MySQL или PostgreSQL, либо вы заходите встроить чат на WebSockets, или сделать, чтобы люди за своими компьютерами могли играть друг с другом через интернет через WebSockets (кстати, модуль хороший: https://www.npmjs.com/package/ws ), то берите бесплатный Heroku в качестве хостинга. Правда, на бесплатном плане Heroku есть ограничение, что если к вашему серверу никто не обращался 30 минут, то сервер засыпает и чтобы его разбудить нужно подождать 10-15 секунд. Но я не проверял, когда он просыпается он заново стартует или нет, скорее всего, оно просто перезапускается, но это не точно. Ещё на Heroku ограничена бесплатная MySQL размером 5 МБайт. Инструкция по разворачиванию сервера на Heroku
1
|
||
| 13.12.2021, 01:34 [ТС] | ||
0
|
||
| 13.12.2021, 01:57 | |||
|
0
|
|||
| 13.12.2021, 03:57 | |
|
0
|
|
| 13.12.2021, 12:23 | |
|
0
|
|
| 13.12.2021, 16:36 [ТС] | ||||||
Сообщение было отмечено 8Observer8 как решение
Решение
8Observer8, сейчас буду изучать 3d, позже еще напишу. Ошибку в своем коде который опубликован в первом посту я все же нашла и исправила. Там переменная массив VisibleObj в классе T3DObject без this из-за чего при повороте объекта добавляется каждый раз 20 новых элементов в массив. Это как раз вся прорисованная область, поэтому происходит дубликат, нужно просто добавить this, вот кусок исправленного кода.
1
|
||||||
| 13.12.2021, 17:37 | ||
Сообщение было отмечено Olga28 как решение
Решение
1
|
||
| 14.12.2021, 15:20 | ||||||||||||
|
Выглядит это так, на примере индексов кубика:
Пример загрузки кубика из gltf 2.0 с рисованием на WebGL и JavaScript WebGL-демка в песочнице Исходники: load-cube-from-gltf2-webgl-js.zip (4.1 Кб) index.html
0
|
||||||||||||
| 14.12.2021, 15:27 | ||||||
|
Box.gltf
0
|
||||||
| 17.12.2021, 22:50 | |||
|
0
|
|||
| 17.12.2021, 22:50 | |
|
Помогаю со студенческими работами здесь
20
Почему при перемещении объекта остается "след" от него? Не Работает clearRect (canvas)
Остаётся след мышки снизу На фоне остается след от анимации Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|