не с квадратным. с прямоугольным. то есть когда стороны разные и изображение искажается. это матрицами фиксится?
можно составить из прямоугольных https://threejs.org/examples/#webgl_multiple_canvases_grid
решение с матрицей это общепринятый best practice для этой проблемы?
Никакая это не проблема.
если это просто пропорции камеры если выставить вместо ширины и высоты свои размеры (т.е. вместо window.innerWidth, window.innerHeight например 400/1200), то будет искажение - параметры камеры. camera = new THREE.PerspectiveCamera( 60, window.innerWidth / window.innerHeight, 0.2, 2000 ); Если нужно сделать свой прямоугольный размер канваса - то вместо ширины и высоты вбиваешь свои размеры в рендер renderer = new THREE.WebGLRenderer(); renderer.setPixelRatio( window.devicePixelRatio ); renderer.setSize( window.innerWidth, window.innerHeight ); а также есть стили в html /css: #canvas1, { position: relative; width: 300px; height: 200px; }
чел, спасибо за такие подробные советы, но мне надо на чистом вебгл решение. я совсем новичок и трижс ещё не щупал даже
ну не обязательно, кто-то просто умножает каждую ось. но матрицы каноничнеее
Дружище, попытка делать 3d на голом ВебГл, это как делать свой ВордПресс чтобы сделать веб страничку. Трееджс скрывает все ужасы ВебГл. Однако, я не исключаю, что по мере развития тебе придется решать специфические задачи и тогда потребуется понимание ВебГл. В этом случае очень рекомендую webglfundamentals.
и да и нет, зависит от задач
Обсуждают сегодня