SHAPEHINTS

Документы VRML используют узел ShapeHints для того, чтобы задать, являются ли значения IndexedFaceSet отвечающими жестким или выпуклым граням, содержат ли они упорядоченные вершины. Документы VRML используют узел ShapeHints, чтобы программы обработки VRML-документов могли оптимизировать процесс рендеринга. В такую оптимизацию входит исключение невидимых граней и устранение двустороннего освещения, эффект которого также не виден. Например, если объект сцены является жестким и имеет упорядоченные вершины, программа реализации VRML может включить процесс устранения обратных граней и выключить освещение обеих сторон грани. Следующий код иллюстрирует имена полей и их значение по умолчанию для узла ShapeHints:

ShapeHints {  
creaseAngle 0.5 # SFFloat
faceType CONVEX # SFEnum
shapeType UNKNOWN_SHAPE_TYPE # SFEnum
vertexOrdering UNKNOWN_ORDERING # SFEnum
  }  

Поле creaseAngle устанавливает угол между нормалями на смежных гранях. Когда требуется IndexedFaceSet для формирования нормалей по умолчанию, используется поле creaseAngle, чтобы определить, какие края броузер должен плавно затенить, а какие края должны иметь отчетливые границы. Угол складки (crease angle) определяется как угол между двумя нормалями к поверхностям на смежных гранях. Например, угол складки в 0, 5 радиан (значение по умолчанию) указывает, что переход между двумя смежными полигональными гранями будет выглядеть плавным в случае, когда нормали к двум граням образуют угол, который меньше 0, 5 радиан (приближенно 30 ). В противном случае переход между этими двумя гранями будет резко обозначенным. Поле fасеТуре указывает, являются ли все грани формы выпуклыми (значение CONVEX), или же что документу неизвестно ничего о гранях (значение UNKNOWN_FACE_TYPE) . Поле vertexOrdering позволяет указывать на упорядоченность вершин объектов. Оно может принимать значения UNKNOWN_ORDERING — упорядоченность неизвестна, CLOCKWISE- упорядоченность по часовой стрелке, или COUNTERCLOCKWISE — упорядоченность против часовой стрелки. Поле shapeType показывает, ограничивает ли форма объем (значение SOLID), или же тип формы неизвестен (значение UNKNOWN_SHAPE_TYPE).