Giter Club home page Giter Club logo

wave-client-renderer's People

Contributors

airtucha avatar ggoek avatar gitter-badger avatar nicolaisi avatar raghavaro avatar sogimu avatar stevenczwu avatar val118 avatar zateyev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

wave-client-renderer's Issues

too many texture units problem

some slight additions:
Surprisingly, we ran again in the insidious “too many texture units problem”, which got fixed only with manually setting the texture unit number in the second shader code from 32 to 8 , Confusingly, we saw in the github logs that you added code here for addressing this automatically?!?
Secondly, the GUI elements looked exactly like before , therefore both problems let us suspect that we either ran on some older code base or do something seriously wrong… ;)

Occasional glitch when loading data

Once in a while data is not load correctly and a few slices contain garbage data with expected results, as seen on the left side:

glitch

Hitting F5 resolves it but it's still not a nice experience. Nevertheless #34 is more important at the moment, so this is just for the record.

Broken Zoombox

Zoombox breaking
The following API endpoints stopped working:

setZoomXMinValue
setZoomXMaxValue
setZoomYMinValue
setZoomYMaxValue
setZoomZMinValue
setZoomZMaxValue

Renderer should non isotope resolution

Currently renderer assumes voxel is a uniform cube with same resolution in all dimension, but several data sources has voxel with different resolution in different spatial dimension.

A solution to accomodate this non uniform voxel resolution need to be done ;)

Volume bleeds on setSize()

whenever we change the size, the volume bleeds.
screenshot from 2015-11-27 13 30 16

This is due to upscaling and downscaling of texture map in GPU. I'm not exactly sure what's going on inside. But this seems to be the case. What I found out is GPU does a bilinear filtering on the texture.

One way to solve this is to add extra process to correct the cube edge in shader.

As long as this is not solve, setRenderSize() method is only for debugging purposes and not intended for production.

GUI Interaction (zoom, click)

This needs to be improved, currently sometimes the user is left hanging and additional "magic" mouse clicks are required to make it work.

Maybe it is caused by racing conditions of the callback function.

Clear separations between the callback of functions.

transferTexture is not defined

your latest two commits introduce a bug.

THREE.WebGLRenderer 70
volumeRaycaster.js:681 Core: setTransferFunctionByColors()
volumeRaycaster.js:665 Core: setTransferFunctionByImage()
volumeRaycaster.js:675 Uncaught ReferenceError: transferTexture is not defined

Anti-aliasing

So far the rendered volume suffers from aliasing effect.

  1. we will need to implement super-sampling method to remove the jagged edges.
  2. implement a stochastic random rays to remove moire effect
  3. implement other AA filter such as morphology filter, etc.

Adding a reference point for better orientation during panning

When users perform panning with their right mouse click, the object is displaced and moved further away from its point of origin. It will be great to place a reference symbol at the origin to give users a hint of the origin's position.

You can enable the panning in the core.js file:
this._controls.noPan = false;

The right-click panning happens in the TrackballControls.js.

Speedup Ray tracing algorithm

So far, we're just stepping through every pixels on the view plane and trace the rays. Well, this is fine for showcase, but should be sped up somehow.

  1. Probable way is to use kd-trees to identify the region of intersections and traverse through this tree.

Colour map bug

Sometimes the colour map switching does not work. This was seen in Firefox.

Arbitrary slicing (Feature)

Currently the slicing functions works only in x, y and z direction, this is a limitation that we would like to remove. The goal is to have an arbitrary slice on the 3D object.

shader switching (web interface)

Currently, one can only change the shader by changing the shader name in the config file. One should implement a dropdown menu that can choose various shaders available. (reload the shader and preserve the settings and view status)

Fix the double loading bug

The bug fix earlier (4f6cc08) introduced the asynchronous loading of the slicemaps (core.js). However, the legacy approach still loads the slicemaps from volumeRaycaster.js and needs to be removed.

Firefox on window not rendering the volume (Black cube mystery)

Well, you might blame the browser compatibility issue, but the weirdest part is the earlier version of tomo_raycaster2 worked on the same platform, but the newer version does not. Seems more like a bug to me.

I pinpoint down the commit to this
aae34c4

After that commit, firefox is unable to render anymore. Before that everything is working fine. I cannot debug it now as it looks like a big commit with only one line of commit message.

Opacity function features

Currently we implemented an opacity transfer function that takes the size of the object into account (negative exponential function), but not the gray value (intensity) of the 3D data itself.

Implement additional opacity transfer function that takes the gray value intensities into consideration.

Colormap dependencies

The colormap dependencies have to be governed in a better structure. For now, there are too many weird external links that are not reliable.

We should first remove the all the codes related to colormap and plan a feature release.

Partial data is wrongly located

I always wondered why I saw some weird artifacts on the surrounding box. Turns out it's data from the opposite side of the cube. Here's an example, the full (but slightly cut) volume on the left and the volume sliced towards one side on the right. Circled in red is the data and its origin:

bug

Is there any documentation?

Can't find anything quickly but I'd be interested in API calls and options to the renderer constructor. It's a pity, I had to find out how to enable the ISO surface rendering by reading the report ;-)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.