Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Regarding the issue of Threejs version #7

Open
MrQiangHu opened this issue Dec 21, 2024 · 6 comments
Open

Regarding the issue of Threejs version #7

MrQiangHu opened this issue Dec 21, 2024 · 6 comments

Comments

@MrQiangHu
Copy link

May I ask if you will consider upgrading to the version of Threejs? Are you currently using version 153?

@repalash
Copy link
Owner

repalash commented Dec 26, 2024

Yes, it will be done but slowly and few versions at a time while trying to maintain backward compatibility. But important bug fixes and some new features from the new versions might be merged early. Is there anything specific you would like to see?

@MrQiangHu
Copy link
Author

Currently, I'm trying to use it to integrate other existing libraries, such as the postprocessing library. However, I've found that the rendering pipeline of threepipe is different from that of threejs, and directly using third-party libraries for threejs will result in errors. I would really appreciate it if you could write more about custom rendering pipelines and plugins, as this would make it easier to integrate third-party libraries for threejs

@repalash
Copy link
Owner

repalash commented Jan 8, 2025

Hey so the main render pipeline in threepipe uses the default EffectComposer from threejs with 2 default passes - ExtendedRenderPass and ScreenPass, one for rendering and other for copying to the scene. Both of these can be extended by various plugins to add effects like material extensions, screen space effects. And more passes can be added to be pipeline if required.
In general there.js passes can be used as is in your code wherever required, but to use it with the main render pipeline, it needs to be registered in the render manager, which places the pass at the correct place and renders it when required. See PipelinePassPlugin for an abstract plugin that provides the boilerplate to create a plugin that registers a custom pass in the pipeline. Check NormalBufferPlugin for an example of that.

There are some more details here - https://threepipe.org/guide/render-pipeline.html#render-pipeline

For using third party three.js libraries, you can probably override the version in package.json if you get any type errors -

  "overrides": {
    "three": "$three",
    "@types/three": "$@types/three"
  }

@OstenL
Copy link

OstenL commented Feb 1, 2025

The mousewheel zoom in OrbitControls does not work with Orthographic camera in threejs version 153. There is a different implementation of this in newer versions of threejs so it would be appreciated if this could be fixed.

@repalash
Copy link
Owner

repalash commented Feb 2, 2025

Hey @OstenL I am in the progress of updating till r160. It will be done soon.
The issue with orthographic camera zoom looks like a bug, there are several changes in r155 in OrbitControls, will fix that along with that.

@repalash
Copy link
Owner

repalash commented Feb 8, 2025

@OstenL Orthographic camera zoom issue has been fixed in version 0.0.39
You can try it out here - https://threepipe.org/examples/?q=camera#camera-ortho-uiconfig/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants