2016-10-21 4 views
0

меня webgl 3D scene с background image и несколько форм с textures.
Я хочу добавить некоторые линии и другие фигуры и применить к ним по умолчанию цвет, который не влияет на фигуры с текстурами.
Как я могу это сделать?
это то, что я сейчас:По умолчанию цвет для WebGL 3D сцены

gl.clearColor(0.0, 0.0, 0.0, 0.0); //alpha=0 for background img 
gl.enable(gl.DEPTH_TEST); 
+0

* «Я хочу, чтобы вычислить PI, это то, что я сейчас:' уаг PI; '» * –

+0

Я написал только код, который я думал, что имеет отношение @LJ ᛃ – arii

ответ

1

WebGL по умолчанию скомпонованного в веб-страницы. Это означает, что очистка с 0,0,0,0 означает холст прозрачна стандартные веб-страницы CSS цвет фона настройки самого холста или элементы, стоящие за ней (<body>, <html>> и т.д., то, что полотно будет смешиваться с

Вы можете найти этот ответ полезным

https://stackoverflow.com/a/39354174/128511

2

я собираюсь написать в плане вызовов, как разоблачена интерфейсы C (ради generity, сама спецификация полностью опускает гл ... спереди) ,

glClearColor выбирает цвет, с которым буферизатор очищается по вызову glClear(GL_COLOR_BUFFER_BIT | …). Без вызова glClear это не имеет никакого эффекта.

glEnable(GL_DEPTH_TEST) позволяет глубину тестирования для рисования вызовов, которые следуют.

хотите добавить несколько строк и другие формы и нанести на них по умолчанию цвет ... Как я могу это сделать?

Uh, просто нарисовать их.

которые не влияют на фигуры с текстурами.

Так все равно работает OpenGL. OpenGL не описывает сцену. OpenGL - это все, что происходит «в данный момент». Он просто рисует точки, линии или треугольники, по одному за раз, и единственным «вмешательством» является то, что он перегружает пиксели в фреймбуфере.

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

Смежные вопросы