Я создаю простое приложение для 3D-просмотра/редактора, и средство рендеринга по какой-то причине всегда отображает освещенные стороны сверху и неосвещенные сзади. вот полный проект
https://drive.google.com/drive/folders/ ... sp=sharing
private static void renderLighting(GraphicsContext graphicsContext, List resultPoints, List worldVertices, Model mesh) {
// Improved diffuse lighting with soft shadow calculation
Vector3f lightPosition = new Vector3f(10, 10, 10); // Example light position
Color lightColor = Color.WHITE;
Color objectColor = Color.LIGHTGRAY;
Vector3f polygonNormal = calculatePolygonNormal(worldVertices);
Vector3f lightDirection = new Vector3f(
lightPosition.x - worldVertices.get(0).x,
lightPosition.y - worldVertices.get(0).y,
lightPosition.z - worldVertices.get(0).z
);
lightDirection.normalize();
float diffuseIntensity = Math.max(0, polygonNormal.dotProduct(lightDirection));
// Adding soft shadow effect
float shadowFactor = calculateSoftShadowFactor(worldVertices, lightPosition);
diffuseIntensity *= shadowFactor;
double red = objectColor.getRed() * (lightColor.getRed() * diffuseIntensity);
double green = objectColor.getGreen() * (lightColor.getGreen() * diffuseIntensity);
double blue = objectColor.getBlue() * (lightColor.getBlue() * diffuseIntensity);
graphicsContext.setFill(Color.color(clamp(red), clamp(green), clamp(blue)));
double[] xPoints = resultPoints.stream().mapToDouble(p -> p.x).toArray();
double[] yPoints = resultPoints.stream().mapToDouble(p -> p.y).toArray();
graphicsContext.fillPolygon(xPoints, yPoints, resultPoints.size());
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... ont-javafx
Освещенные лица всегда отображаются впереди JavaFX ⇐ JAVA
Программисты JAVA общаются здесь
-
Anonymous
1735429749
Anonymous
Я создаю простое приложение для 3D-просмотра/редактора, и средство рендеринга по какой-то причине всегда отображает освещенные стороны сверху и неосвещенные сзади. вот полный проект
https://drive.google.com/drive/folders/157aE8AbMWSAd4yxqfAUlN8dMa2Z_67kI?usp=sharing
private static void renderLighting(GraphicsContext graphicsContext, List resultPoints, List worldVertices, Model mesh) {
// Improved diffuse lighting with soft shadow calculation
Vector3f lightPosition = new Vector3f(10, 10, 10); // Example light position
Color lightColor = Color.WHITE;
Color objectColor = Color.LIGHTGRAY;
Vector3f polygonNormal = calculatePolygonNormal(worldVertices);
Vector3f lightDirection = new Vector3f(
lightPosition.x - worldVertices.get(0).x,
lightPosition.y - worldVertices.get(0).y,
lightPosition.z - worldVertices.get(0).z
);
lightDirection.normalize();
float diffuseIntensity = Math.max(0, polygonNormal.dotProduct(lightDirection));
// Adding soft shadow effect
float shadowFactor = calculateSoftShadowFactor(worldVertices, lightPosition);
diffuseIntensity *= shadowFactor;
double red = objectColor.getRed() * (lightColor.getRed() * diffuseIntensity);
double green = objectColor.getGreen() * (lightColor.getGreen() * diffuseIntensity);
double blue = objectColor.getBlue() * (lightColor.getBlue() * diffuseIntensity);
graphicsContext.setFill(Color.color(clamp(red), clamp(green), clamp(blue)));
double[] xPoints = resultPoints.stream().mapToDouble(p -> p.x).toArray();
double[] yPoints = resultPoints.stream().mapToDouble(p -> p.y).toArray();
graphicsContext.fillPolygon(xPoints, yPoints, resultPoints.size());
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79314747/lit-faces-always-rendering-in-front-up-in-front-javafx[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия