Comments (17)
This is not "wrong", this is "invalid" for Fivox data source only. Cutoff distance is only meaningful for this data source. We have to think about this carefully.
from livre.
resolution in um/voxel is only used in Fivox. I don't think it's used for any other datasource??
from livre.
what is to do with cutoff distance :)
from livre.
Because now our total bounding box is equal to the circuit bounding box + 2 * cutoff distance.
from livre.
But, what is to do with Livre :) Livre does not have a context for cutoff distance. This problem is related to Fivox to seperate cutoff distance from volume size !
from livre.
Livre has nothing to do with resolution values like ( um/voxel ) it's a pure Fivox stuff...
It's why we can just remove this statistic.
from livre.
ok with that :)
from livre.
Not ok with that. Livre does (and has to) know resolution values. It is not only for the overlay, but more importantly for the camera synchronization.
from livre.
Through data source, yes. But the report over there is pure wrong. It is only valid for some use cases. The synchronization of reference frames between applications is not present since we have concentrated on camera only.
from livre.
"pure wrong" is a string statement. It's useful for data sources which have a real-world size. Maybe it should not be printed for the ones which don't.
I don't get 'reference frames'? The ZeroEQ lookout is defined in meters, therefore the real-world size is important. We can assume a default unit meter cube for the undefined ones.
from livre.
I am wrong, you are right. Re-checking the code, I have mixed it with worldSize. I thought it was the normalized space, but we have a separate value for defining the space. If it was the normalized space it would be wrong. I mean by the reference frame this one.
from livre.
Ok, to summarize the problems I found:
-
info.boundingBox is the bounding box of the circuit. It is needed for camera synchronization and
only for that currently.
info.voxels is the total number of voxels ( with the ones added by the cutoff distance ). It
doesn't match the info.boundingBox. Because of that, info.boundingBox.getSize() / info.voxels doesn't
always give us the right resolution. -
This resolution information is only valid for some DataSources like BBIC and
Fivox. MemoryDataSource, UVF and Cubist don't provide any "real world" measurements.
Assuming anything for a dataSource like UVF is just wrong (a vein with 2m radius?). -
What do we want to show exactly? The printed resolution is actually the maximum
possible resolution and not the current one. Livre using out of core LODs, blocks with
different resolution are loaded at the same time.
For me it seems that the right thing to do is to add a Vector3f resolution field in the VolumeInformation class and initialize it to some negative values. If a data source provide this information, we show it, if not we don't show anything.
from livre.
- Sounds correct, except that it is not used for camera sync correctly today. This bug is so old that it grew roots.
- In the absence of real-world data, one has to assume a default. This can't be wrong, as you are doing it already in any case. What is technically wrong today is that Livre scales everything to be in meters, even if it is not. (UVF might have the info?)
- The real-world size of a single voxel at the highest LOD.
from livre.
- Yes. It's actually not used at all for camera sync, yet :(
2)"This can't be wrong, as you are doing it already in any case". We are not doing that... The only
thingy that can be computed is the meters per livre unit. For that we need a valid data bounding box
provided by Brion (or BBIC ?). UVF, memory and Cubist datasources are totally "real world" unit agnostic.
"Livre scales everything to be in meters" I don't understand this statement. Livre itself is "real world" unit agnostic. The resolution printing is the only place where "real world" units are used. Even during
the camera synchronization the "real world" unit will simplify because we are interested in a ratio only.
Ahmet told me that UVF doesn't have the required information. And for the UVF it will be very wrong to assume anything. If we use as a default 1m cube and look at a human cell volume, the resolution print will tell to the user that the cell is 1 meter big. What is the point to lie like that? It can only confuse people IMHO...
- Yes. Maybe we can explicitly say that ?
from livre.
-
When running Livre in a VR setting, the user sees data at a certain scale. Today all data is scaled to be two meters.
-
um/voxel says how many um a voxel is? What do you have in mind?
from livre.
- Ok. It's something new... I was not aware of... But I think it's another problem.
After a discussion with Juan, Daniel and Jafet, we agreed that the best solution will be to compute the transformation matrix between data and application spaces in the datasource and use it to multiply the camera.
from livre.
- Maybe write "maximum resolution"... but I am not sure if it's needed actually.
from livre.
Related Issues (20)
- LOD/Frustum culling issue
- Add old renderer as part of OSX compatibility
- Changes in RenderSettings are not reflected in renderer
- frame to timestep naming
- SegFault on exit HOT 1
- OSX and GL2.1 and 64bit HOT 3
- Fix ui compilation warning HOT 1
- Apparently, sometimes, the data is deleted from the cache before giving it to the histogram object
- Fix clipping plane UI
- Livre uses 300% CPU when idle HOT 1
- Cache statistics are broken
- Pipeline does not stop on exit HOT 1
- Loading bricks progress bar does not get updated after each brick HOT 1
- int16 not working HOT 1
- ring-artifact HOT 1
- crash after install HOT 4
- Samples-per-pixel does nothing
- glewGetContext not defined
- LRU Cache is LRA(llocated) cache
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from livre.