macroing / dayflower Goto Github PK
View Code? Open in Web Editor NEWA photorealistic 3D-renderer written in Java
Home Page: https://www.dayflower.org
License: GNU Lesser General Public License v3.0
A photorealistic 3D-renderer written in Java
Home Page: https://www.dayflower.org
License: GNU Lesser General Public License v3.0
It would be desirable to bind JavaFX Transform objects to specific Dayflower Transform objects. The purpose would be to animate objects in the scene and render again.
This feature would be useful for animation software to animate and render without having to make a new scene for each frame.
This would also be VERY useful for Robotics applications. Using the virtual range finder code a robot simulation could provide virtual sensor data as fast as a real sensor. This would let roboticsts test control code in virtual environments. (I would LOVE to include this feature in BowlerStudio https://commonwealthrobotics.com/ )
Add support for UberMaterial to the GPU-renderer.
The JavaFX-based ParameterLoader implementation, called ParameterLoaderImpl, should have support for FileParameter.
The ParameterDialog class is responsible for the functionality. So it should be added to this class.
I have been searching for pure java raytracer and found this project, FANTASTIC work! This is truly a hidden gem!
I am looking to implement a virtual range finder in Java for a robot simulation system. I would love to use the work you have done as-is, or with some small modifications if possible.
I want to render an image such that each "pixel" corresponds to a float value of distance to first occlusion, so i can encode it as a 16 bit greyscale image just like the Intel Realsense does. I was about to implement this manually in Aparapi, but found your project while reading through their site.
I have gotten the sample project running in Eclipse, and seem to have gotten the GPU acceleration running.
I have 3 main questions:
Can I convert from a Javafx scene produced with other library for assets (JCSG) to the org.dayflower.scene.Scene, or must the scene be loaded via the DSL file? Can it handle generic MeshView's?
Will Scene elements obey changes to transforms? As in, will an animated transform be animated synchronously in the rendered scene?
Do you have any examples of a "depth camera view"?
A change in the dependencies causes Java 8 builds of the source to fail to compile.
Could not instrument class org/macroing/java/io/Files: Unsupported class file major version 61.
Add support for DiffuseAreaLight to the GPU-renderer.
When I run the app in NetBeansIDE, do nothing and just lose it, all is fine.
But if I start some render and then close the application, it still remains loaded and runing, only the GUI is closed.
Throughout the code there is zillions of calls to NONEXISTENT RESOURCES, that is no such directories/files are nowhere to be found in the code package downloadable from here at all!
Some exmaples of such calls:
private static final double[] IMAGE_4_D_DISPLACEMENT_MAP = Image.image4DLoad("./resources/textures/bricks2_disp.jpg");
private static final double[] IMAGE_4_D_NORMAL_MAP = Image.image4DLoad("./resources/textures/bricks2_normal.jpg");
There is no folder "textures" in resources folder or anywhere else in the whole package, and I would like to point out this is even in the test classes that should serve as presentation/preview of supposed functionalities of Dayflower!
Or this one here:
public static void main(final String[] args) {
doRender("./generated/Simplex/Cone.png", 270.0D, cone3D(), 4.0D);
doRender("./generated/Simplex/Cylinder.png", 270.0D, cylinder3D(), 4.0D);
doRender("./generated/Simplex/Disk.png", 0.0D, disk3D(), 2.0D);
doRender("./generated/Simplex/Hyperboloid.png", 270.0D, hyperboloid3D(), 4.0D);
doRender("./generated/Simplex/Paraboloid.png", 270.0D, paraboloid3D(), 4.0D);
doRender("./generated/Simplex/Plane.png", 0.0D, plane3D(point3D(0.0D, -1.0D, 0.0D), point3D(0.0D, -1.0D, 1.0D), point3D(1.0D, -1.0D, 0.0D)), 0.1D);
doRender("./generated/Simplex/Polygon.png", 0.0D, polygon3D(), 2.0D);
doRender("./generated/Simplex/Rectangle.png", 0.0D, rectangle3D(), 2.0D);
doRender("./generated/Simplex/RectangularCuboid.png", 0.0D, rectangularCuboid3D(), 2.0D);
doRender("./generated/Simplex/Sphere.png", 270.0D, sphere3D(), 4.0D);
doRender("./generated/Simplex/Torus.png", 0.0D, torus3D(), 2.0D);
doRender("./generated/Simplex/Triangle.png", 0.0D, triangle3D(), 4.0D);
}
There is no folder called "generated" anywhere in the whole package, and I would like to point out this is even in the test classes that should serve as presentation/preview of supposed functionalities of Dayflower!
Thus there is no chance to even test this!
The Application hangs and keeps the mouse bound. I was able to kill it from the command line and got the following exception
Exception in thread "JavaFX Application Thread" java.lang.ArithmeticException: / by zero
at com.sun.javafx.scene.control.behavior.TabPaneBehavior.nextIndex(TabPaneBehavior.java:187)
at com.sun.javafx.scene.control.behavior.TabPaneBehavior.findValidTab(TabPaneBehavior.java:175)
at com.sun.javafx.scene.control.behavior.TabPaneBehavior.moveSelection(TabPaneBehavior.java:160)
at com.sun.javafx.scene.control.behavior.TabPaneBehavior.moveSelection(TabPaneBehavior.java:155)
at com.sun.javafx.scene.control.behavior.TabPaneBehavior.selectPreviousTab(TabPaneBehavior.java:151)
at com.sun.javafx.scene.control.behavior.TabPaneBehavior.callAction(TabPaneBehavior.java:74)
at com.sun.javafx.scene.control.behavior.BehaviorBase.callActionForEvent(BehaviorBase.java:218)
at com.sun.javafx.scene.control.behavior.BehaviorBase.lambda$new$0(BehaviorBase.java:135)
at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
at javafx.event.Event.fireEvent(Event.java:198)
at javafx.scene.Scene$KeyHandler.process(Scene.java:3964)
at javafx.scene.Scene$KeyHandler.access$1800(Scene.java:3910)
at javafx.scene.Scene.impl_processKeyEvent(Scene.java:2040)
at javafx.scene.Scene$ScenePeerListener.keyEvent(Scene.java:2501)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$KeyEventNotification.run(GlassViewEventHandler.java:217)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$KeyEventNotification.run(GlassViewEventHandler.java:149)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleKeyEvent$1(GlassViewEventHandler.java:248)
at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:410)
at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleKeyEvent(GlassViewEventHandler.java:247)
at com.sun.glass.ui.View.handleKeyEvent(View.java:546)
at com.sun.glass.ui.View.notifyKey(View.java:966)
at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
at com.sun.glass.ui.gtk.GtkApplication.lambda$null$10(GtkApplication.java:245)
at java.lang.Thread.run(Thread.java:748)
For users of this coda as a library, an Input stream is more flexible than a File. I would like to generate scene code on the fly, so storing to a String would be preferable to writing to disk. It would also be interesting to stream scenes to be rendered over a network connection so passing in data as a SocketStream would be useful.
The methods called luminance in the Color* classes should be renamed to relativeLuminance.
I am trying to add this into NetBeansIDE 12.4, all seems fine except the resources folder where all of the files have errors in all of its lines, what is wrong with that folder? How in the world can a Java class has structure like this example below (BullseyeMaterial.java in resources folder)???
final Light light1 = new PerezLight();
final Material material1 = new MatteMaterial(new CheckerboardTexture());
final Material material2 = new BullseyeMaterial(new MatteMaterial(new Color3F(1.0F, 0.01F, 0.01F)), new MatteMaterial(new Color3F(0.01F, 1.0F, 0.01F)), new Point3F(10.0F, 10.0F, 10.0F));
final Shape3F shape1 = new Plane3F();
final Shape3F shape2 = new Sphere3F();
final Transform transform1 = new Transform(new Point3F(0.0F, 0.0F, 0.0F));
final Transform transform2 = new Transform(new Point3F(0.0F, 1.0F, 0.0F), Quaternion4F.from(Matrix44F.rotateX(AngleF.degrees(270.0F))));
final Primitive primitive1 = new Primitive(material1, shape1, transform1);
final Primitive primitive2 = new Primitive(material2, shape2, transform2);
final Camera camera = new Camera(new Point3F(0.0F, 2.0F, -10.0F), AngleF.degrees(40.0F));
scene.addLight(light1);
scene.addPrimitive(primitive1);
scene.addPrimitive(primitive2);
scene.setCamera(camera);
scene.setName("BullseyeMaterial");
Because of that I cannot run/test anything at all...
Add static intersection methods to the Rectangle2D, Rectangle2F and Rectangle2I classes.
These methods should take two instances of the same Rectangle2* type as parameters and return an Optional<Polygon2*> with the optional intersection.
They previously had methods returning an Optional<Rectangle2*>. This only works if both are axis-aligned.
You have LGPL and GPL in the repo, that seems like a contradiction?
I would need LGPL to really incorporate this as a feature, can you clarify how the licensing works from your perspective? Since its all your code, if you just choose to remove the GPL license then this can (and IMHO should) be a major step forward in Java rendering standards!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.