Я работаю с Java3d под eclipse Indigo в окнах. После окончательного изменения примера StlLoader и классов ObjLoad, чтобы загрузить мои файлы STL, я получаю результат, который выглядит следующим образом (я думаю, что из других вопросов это, безусловно, плохие векторные нормали). Кто-нибудь знает, почему у меня может быть эта проблема? Я использую SolidWorks для сохранения STL как файла ASCII и использования модификации кода для загрузки файлов STL, указанных на java3d.org. Хотя я только изменил некоторые свойства внешнего вида и фиксированный сломанный импорт и т. Д. Я подтвердил, что нормальные грани, помещенные в «normList» ниже, точно соответствуют таковым из файла.Java3d - Bad Normals using GeometryInfo
Пример Результат:
Отрывок из StlFile.java от http://www.java3d.org:
private SceneBase makeScene()
{
// Create Scene to pass back
SceneBase scene = new SceneBase();
BranchGroup group = new BranchGroup();
scene.setSceneGroup(group);
// Store the scene info on a GeometryInfo
GeometryInfo gi = new GeometryInfo(GeometryInfo.TRIANGLE_STRIP_ARRAY);
// Convert ArrayLists to arrays: only needed if file was not binary
if(this.Ascii)
{
coordArray = objectToPoint3Array(coordList);
normArray = objectToVectorArray(normList);
}
gi.setCoordinates(coordArray);
gi.setNormals(normArray);
gi.setStripCounts(stripCounts);
// Setting the Material Appearance
Appearance app = new Appearance();
// Coloring Attributes
ColoringAttributes catt = new ColoringAttributes();
catt.setShadeModel(ColoringAttributes.NICEST);
app.setColoringAttributes(catt);
Material mat = new Material(new Color3f(0.6f, 0.6f, 0.6f), // ambient
new Color3f(0, 0, 0), // emissive
new Color3f(0.6f, 0.6f, 0.6f), // diffuse
new Color3f(0.6f, 0.6f, 0.6f), // specular
10); // shininess
app.setMaterial(mat);
// Put geometry into Shape3d
Shape3D shape = new Shape3D(gi.getGeometryArray(), app);
group.addChild(shape);
scene.addNamedObject(objectName, shape);
return scene;
} // end of makeScene
Если вы попробуете что-то простое, как куб или сфера, это выглядит правильно? Попытка угадать, если это проблема с файлом модели или вашим кодом. – Tim
Результат для сферы почти такой же. Нормали в файле выглядят несколько разумно. Кто-нибудь знает способ легкого построения нормалей по цвету или со стрелкой/линией? Сфера pic [здесь] (http://i.imgur.com/j02Ng.png) –
Кто-нибудь обнаружил что-нибудь полезное по этому вопросу? –