声明: 本博客文章原创类别的均为个人原创,版权所有。转载请注明出处:http://blog.csdn.net/ml3947,另外本人的个人博客:http://www.wjfxgame.com。 这一节中,我们将会讲述 JavaFX 3D API中的材质。
Material材质中包含了一系列的渲染属性。下面我们来看看它的类结构。
java.lang.Object
javafx.scene.paint.Material (abstract)
javafx.scene.paint.PhongMaterial
PhongMaterial类提供了材质着色的一系列属性的定义。
- Diffuse color
- Diffuse map
- Specular map
- Specular color
- Specular power
- Bump map or normal map
- Self-illumination map
这里就不做解释了,主要是Shader中的一些什么高光,自发光等的Shader效果。具体请自行查阅相关资料。
Materials是可以在多个Shape3D的节点共用的。
下面我们来看看,如何创建一个材质,并设置属性然后应用到我们的3D物体上。
//创建材质
Material mat = new PhongMaterial();
Image diffuseMap = new Image("diffuseMap.png");
Image normalMap = new Image("normalMap.png");
// 设置材质属性
mat.setDiffuseMap(diffuseMap);
mat.setBumpMap(normalMap);
mat.setSpecularColor(Color.WHITE);
// 应用到Shape3D上
shape3d.setMaterial(mat);
这样我们就可以将材质应用到我们的3D物体上了。当然,由于JavaFX 3D还是在开发中的API。材质属性跟Unity3D相比还是差太多(不算Unity3D的插件)。
所以现阶段,只做研究,不应该考虑用JavaFX 3D来进行开发。
本博客文章原创类别的均为个人原创,版权所有。转载请注明出处:http://blog.csdn.net/ml3947,另外本人的个人博客:http://www.wjfxgame.com。
分享到:
相关推荐
本文将介绍JavaFX中3D图形的创建与操作的基础知识。 1. JavaFX概述: JavaFX是一种用于创建富互联网应用程序(RIA)的Java库,提供了一种新的方式来构建图形用户界面,以替代较为老旧的Swing和AWT。JavaFX以Java...
在JavaFX中,开发者可以利用其3D功能来构建具有复杂视觉效果的应用,如本例中的“javaFX 3D小例子”,它是一个使用JavaFX 3D API实现的水分子模拟结构的Idea工程。 首先,我们要理解JavaFX 3D API的核心概念。...
4. **视口与相机**:在JavaFX的3D场景中,视口定义了用户可见的3D空间部分,而相机则决定了如何从特定角度观察这个空间。`PerspectiveCamera`是常用的3D相机类型,它提供了类似人类视觉的透视效果。 5. **场景与...
首先,教程介绍了Eclipse 4和JavaFx的集成原理,以及如何利用e(fx)clipse提供的APIs进行开发。这包括了依赖注入(DI)注解的使用,如@Preference和@ContextValue,以及EventBus机制在应用程序中的应用,使得开发者可以...
"JavaFX3D-ManeuvringACamera"项目是一个示例应用程序,旨在帮助开发者了解如何在JavaFX 3D场景中控制相机视角。 1. **JavaFX 3D基础**: - JavaFX 3D 提供了一组高级图形API,使得开发人员能够创建复杂的3D场景,...
It contains engaging tutorials that cover virtually every facet of JavaFX development and reference materials on JavaFX that augment the JavaFX API documentation. Written in an engaging and friendly ...
JavaFX起步 基础部分 是html格式
FXyzLib, JavaFX 3D 可视化和组件库 FXyzJavaFX 3D 可视化和组件库这是原始的F ( X ) 项目,JavaFX库提供额外的原语。复合对象。控件和数据可视化,基本 JavaFX 3D 包不具有这些特性。 2016的新开发已经移至专用项目...
javafx
它是Java平台的一部分,提供了一系列高级特性,包括2D和3D图形处理、媒体支持、CSS样式以及强大的数据绑定机制。本JavaFX Demo模板案例将帮助我们了解如何使用JavaFX构建一个简单的应用程序。 首先,JavaFX提供了...
JavaFX 3D可视化和组件库 如何建造 该项目由gradle管理。 要构建,请键入 ./gradlew assemble 要将其部署到本地Maven存储库,请输入: ./gradlew publishToMavenLocal FXyz3D Core的使用 FXyz3D具有许多不同的3D...
4. **Ensemble8**:Ensemble是JavaFX的一个综合示例库,通常包含了大量的示例代码,涵盖了JavaFX的各个方面,如布局管理、动画、图表、媒体播放等。通过Ensemble8,开发者可以学习到如何组合不同的JavaFX组件和功能...
JavaFX SDK 11.0.2 是一个用于开发富客户端应用程序的工具包,它在Java 11及更高版本中不再作为标准JDK的一部分。这个独立的SDK提供了必要的库和工具,使得开发者能够在Java平台上构建具有丰富图形用户界面(GUI)的...
6. **JavaFX Swing**: 为了让JavaFX与传统的Swing组件兼容,提供了`javafx.swing.jar`,允许在JavaFX应用中嵌入Swing组件,或者在Swing应用中使用JavaFX的部分功能。 7. **JavaFX SWT**: 类似于JavaFX Swing,`...
7. **2D和3D图形**: JavaFX提供了强大的2D和3D图形渲染能力,可以直接在Java代码中绘制复杂的图形和动画。 8. **媒体支持**: 内置的媒体API使得JavaFX能够播放音频和视频,这对于创建多媒体应用非常有用。 9. **跨...
在本文中,我们将深入探讨如何使用JavaFX框架开发一个基于crawler4j的图形化网络爬虫,以及如何自定义XPath表达式来提取网页内容,并将其存储到MySQL数据库中。这是一项涉及多方面技术的综合性任务,包括前端界面...
4. 高级主题:包括FXML、图表、自定义控件、JavaFX 3D、手势设备和嵌入式系统。这些主题覆盖了JavaFX 8的高级用法,例如使用FXML来设计用户界面,利用JavaFX的图表API来展示数据,以及创建SVG和CSS样式化的自定义...
4. **跨平台兼容**:作为Java的一部分,JavaFX可以运行在任何支持Java的平台上,包括Windows、MacOS、Linux以及各种移动和嵌入式设备。 5. **FXML**:FXML是JavaFX的一种声明式语言,用于构建用户界面。它将界面...
A Definitive Guide to Building Desktop, Mobile, and Embedded Java Clients also contains engaging tutorials that cover virtually every facet of JavaFX development and reference materials on JavaFX ...
4. **2D和3D图形**: JavaFX支持2D和3D图形,通过JavaFX的Shape类和Group类,开发者可以创建和组合各种几何形状,实现复杂图形的绘制。对于3D,JavaFX提供了一个强大的Stage3D API,可以创建具有深度和透视的3D场景...