Slightly improved coloring.
This commit is contained in:
@@ -19,7 +19,7 @@ static void handleMouseMove(int x, int y)
|
|||||||
|
|
||||||
static void move(unsigned char key)
|
static void move(unsigned char key)
|
||||||
{
|
{
|
||||||
float speed = 0.2;
|
float speed = 0.5;
|
||||||
float dir[3];
|
float dir[3];
|
||||||
// Currently very buggy
|
// Currently very buggy
|
||||||
if (key == 'w' || key == 's') {
|
if (key == 'w' || key == 's') {
|
||||||
|
|||||||
@@ -86,16 +86,18 @@ static void drawOneParticle()
|
|||||||
|
|
||||||
static void renderFlatLayer(const LayerData& data)
|
static void renderFlatLayer(const LayerData& data)
|
||||||
{
|
{
|
||||||
|
const auto [minElem,maxElem] = minmax_element(data.data(), data.data() + data.numEntries());
|
||||||
|
const float intensityLimit = max(abs(*minElem), abs(*maxElem));
|
||||||
auto& shape = data.shape();
|
auto& shape = data.shape();
|
||||||
CHECK_EQ(shape[0], 1) << "Should have only one instance per layer." << endl;
|
CHECK_EQ(shape[0], 1) << "Should have only one instance per layer." << endl;
|
||||||
// Draw one triangle for every point in the layer
|
// Draw one triangle for every point in the layer
|
||||||
// Color depends on current value.
|
// Color depends on current value.
|
||||||
vector<float> intensities(data.data(), data.data() + data.numEntries());
|
vector<float> intensities(data.data(), data.data() + data.numEntries());
|
||||||
transform(intensities.begin(), intensities.end(), intensities.begin(), [](auto x) { return clamp(x, -1.0f, 1.0f);});
|
transform(intensities.begin(), intensities.end(), intensities.begin(), [=](auto x) { return clamp(x, -intensityLimit, intensityLimit);});
|
||||||
|
|
||||||
glPushMatrix();
|
glPushMatrix();
|
||||||
for (auto i : intensities) {
|
for (auto i : intensities) {
|
||||||
auto intensity = min(-log(abs(i)) / 20.0f, 1.0f);
|
auto intensity = min(-log(abs(i) / intensityLimit) / 10.0f, 1.0f);
|
||||||
if (i > 0) {
|
if (i > 0) {
|
||||||
glColor3f(intensity, intensity, 1);
|
glColor3f(intensity, intensity, 1);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user