Zapobieganie powierzchni odbijającej w rasterVis

10

Eksperymentowałem z plikami cyfrowych modeli terenu w formacie rastrowym siatki ESRI ASCII. Pomimo zerowego doświadczenia z tego typu danymi, bardzo łatwo załadowałem do R, zgodnie z poniższym kodem. plot3DFunkcji z rasterVisdomyślnych pakiet do estetyzacja działce ale model jest raczej refleksyjny. Biorąc pod uwagę, że ma to być krajobraz, ta błyszcząca powierzchnia nie jest tak naprawdę odpowiednia.

Szukam bardziej naturalnego (jeśli takiego słowa można użyć na temat renderowania 3D zestawu figur), matowej, topologicznej fabuły.

błyszczący

Wyobrażam sobie, że muszą istnieć sposoby na obejście tego, ale nie mam doświadczenia w używaniu rasteri szukaniu wskazówek.

Jak mogę zmniejszyć lub usunąć współczynnik odbicia wykresu?

library(raster)
library(rgdal)
library(rasterVis)

foo <- raster(readGDAL("my.dtm.asc"))
plot3D(foo)
SlowLearner
źródło

Odpowiedzi:

5

Zrobiłem kilka testów i znalazłem ?rgl.materialargument specular, który pomógł w zadaniu.

Zobacz przykład poniżej:

library(raster)
library(rasterVis)

r = raster(volcano)

plot3D(r,lit=TRUE,specular="white") #white is default
plot3D(r,lit=TRUE,specular="black") #change specular to black

wprowadź opis zdjęcia tutaj

Andre Silva
źródło
3

Będziesz musiał przekazać argumenty do plot3D, które modyfikują właściwości wyświetlania rgl, używając argumentów dostępnych w „rgl.material”. Zacznę od „lśnienia” lub „luminancji”. Należy po prostu podać powiązane argumenty rgl.material bezpośrednio w plot3D.

plot3D(foo, zfac=2, shininess=10) 
Jeffrey Evans
źródło
2

Jestem całkiem nowy z pakietem r i rasterVis. Jedną z rzeczy, które uważam za pomocne, jest eksploracja różnych palet kolorów, aby sprawdzić, czy możesz znaleźć taką, która lepiej pasuje do tego, czego szukasz (bez konieczności wchodzenia i próbowania modyfikacji kolorów, aby dokładnie pasowały do ​​tego, czego chcę). Na przykład próbowałem:

plot3D(foo, col=terrain.colors(6))

Z całkiem przyzwoitymi wynikami. Możesz także eksperymentować z paletami z pakietu RColorBrewer, z których niektóre wydają się mniej błyszczące. na przykład:

plot3D(foo, col=brewer.pal(9, 'YlOrRd'))
użytkownik27853
źródło