Прозрачный слой сеткиСтандартный материал, три js ReactJavascript

Форум по Javascript
Ответить
Гость
 Прозрачный слой сеткиСтандартный материал, три js React

Сообщение Гость »


Я реализую простую 3D-рисовку и хочу реализовать стирание. Для этого я решил использовать два слоя холста: один для изображения текстуры и другой (прозрачный) для рисования, чтобы стереть только холст для рисования. Не могли бы вы посоветовать, как иметь одну сеткуStandardMaterial с текстурой изображения (которую не следует изменять при рисовании/стирании) и одну или несколько прозрачных сетокStandardMaterial только для рисования? Вот код компонента:

{ gl.physicallyCorrectLights = правда; }} камера={{ позиция: [0, 0, 10] }} > {isControlsAllowed && } { setIsControlsAllowed (ложь); }} onPointerUp={() => { setIsControlsAllowed (истина); }} onPointerMove={(ev) => { handleBrushPointerMove(ev, previousPoint.current); }} геометрия={геометрия} > Мой код ловушки:

const currentCanvasRef = useRef(document.createElement("canvas")); const currentTextureRef = useRef(null); const currentDrawingCanvasRef = useRef(document.createElement("canvas")); const currentDrawingTextureRef = useRef(null); useLayoutEffect(() => { const context = currentDrawingCanvasRef.current.getContext("2d"); контекст?.clearRect( 0, 0, currentDrawingCanvasRef.current.width, currentDrawingCanvasRef.current.height ); createCanvasTextureFromImage("/Stool.jpg"); }, []); const createCanvasTextureFromImage = ( imageUrl: строка, ) => { константный холст = currentCanvasRef.current; новый ImageLoader().load(imageUrl, (изображение) => { const ctx = Canvas.getContext("2d"); холст.ширина = изображение.ширина; холст.высота = изображение.высота; если (ctx) { ctx.clearRect(0.0, 0.0, холст.ширина, холст.высота); ctx.drawImage(изображение, 0,0, 0,0, изображение.ширина, изображение.высота); } }); }; const handleBrushPointerMove = ( currentPoint: ThreeEvent, prevPoint?: ThreeEvent ) => { // Немного логики рисования }; Что я ожидаю увидеть:


Изображение


И что я на самом деле вижу:


Изображение


ОБНОВЛЕНИЕ: я только что проверил, что массив материалов не работает для сетки. Хотя каждый из материалов работает отдельно, при использовании массива 3D-модель вообще не отображается
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»