# MIP rendering make line black

**URL:** https://discourse.vtk.org/t/mip-rendering-make-line-black/8466
**Category:** Support
**Created:** [May 11, 2022, 3:43am UTC](https://discourse.vtk.org/t/mip-rendering-make-line-black/8466 "2022-05-11T03:43:42Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![zhang-qiang-github](https://discourse.vtk.org/user_avatar/discourse.vtk.org/zhang-qiang-github/32/2519_2.png) [@zhang-qiang-github](https://discourse.vtk.org/u/zhang-qiang-github)
#### Post date: [May 11, 2022, 3:43am UTC](https://discourse.vtk.org/t/mip-rendering-make-line-black/8466/1 "2022-05-11T03:43:42Z")

</div>

In my application, I display a volume image using MIP. In addition, I want to add a red line with the MIP. However, even I set the line color to red, it still shown as black:

 ![image](https://discourse.vtk.org/uploads/default/original/2X/5/51cf09f79cac338b3f64c3524ae08a368234c624.png)

The code to reproduce the result is:

```auto
import vtkmodules.all as vtk

img = vtk.vtkImageData()
img.SetDimensions(256, 256, 256)
img.AllocateScalars(vtk.VTK_DOUBLE, 1)
for i in range(256):
    for j in range(256):
        for k in range(256):
            img.SetScalarComponentFromDouble(i, j, k, 0, i+j+k)

mapper = vtk.vtkSmartVolumeMapper()
mapper.SetInputData(img)
mapper.SetBlendModeToMaximumIntensity()

volume = vtk.vtkVolume()
volume.SetMapper(mapper)

line = vtk.vtkLineSource()
line.SetPoint1(0, 0, 0)
line.SetPoint2(300, 300, 300)
line.Update()
lineMapper = vtk.vtkPolyDataMapper()
lineMapper.SetInputData(line.GetOutput())
lineActor = vtk.vtkActor()
lineActor.SetMapper(lineMapper)
lineActor.GetProperty().SetColor(1, 0, 0)
lineActor.GetProperty().SetLineWidth(10)

render = vtk.vtkRenderer()
render.AddActor(volume)
render.AddActor(lineActor)
renWin = vtk.vtkRenderWindow()
renWin.AddRenderer(render)
iren = vtk.vtkRenderWindowInteractor()
iren.SetRenderWindow(renWin)
iren.SetInteractorStyle(vtk.vtkInteractorStyleTrackballCamera())
iren.Initialize()
iren.Start()

```

How can I make the line shown as red?  
Any suggestion is appreciated~~~

---

<div class="post-metadata">

### Author: ![hamblingreg52](https://discourse.vtk.org/user_avatar/discourse.vtk.org/hamblingreg52/32/3220_2.png) [@hamblingreg52](https://discourse.vtk.org/u/hamblingreg52)
#### Post date: [May 13, 2022, 12:40pm UTC](https://discourse.vtk.org/t/mip-rendering-make-line-black/8466/2 "2022-05-13T12:40:04Z")

</div>

This is exactly what I was looking for. Thank you so much. 😊

---

<div class="post-metadata">

### Author: ![mchinand](https://discourse.vtk.org/letter_avatar_proxy/v4/letter/m/a587f6/32.png) [@mchinand](https://discourse.vtk.org/u/mchinand)
#### Post date: [May 17, 2022, 1:46pm UTC](https://discourse.vtk.org/t/mip-rendering-make-line-black/8466/3 "2022-05-17T13:46:20Z")

</div>

I am interested in doing something very similar but with vtk.js. Using your example, I was able to achieve what I think you want by using a second renderer and setting the renderWindow to have two layers. Can anyone suggest if this is the best way to do this? Is it possible to do the same thing in vtk.js?

```auto
import vtkmodules.all as vtk

img = vtk.vtkImageData()
img.SetDimensions(256, 256, 256)
img.AllocateScalars(vtk.VTK_DOUBLE, 1)
for i in range(256):
    for j in range(256):
        for k in range(256):
            img.SetScalarComponentFromDouble(i, j, k, 0, i+j+k)

mapper = vtk.vtkSmartVolumeMapper()
mapper.SetInputData(img)
mapper.SetBlendModeToMaximumIntensity()

volume = vtk.vtkVolume()
volume.SetMapper(mapper)

line = vtk.vtkLineSource()
line.SetPoint1(0, 0, 0)
line.SetPoint2(300, 300, 300)
line.Update()
lineMapper = vtk.vtkPolyDataMapper()
lineMapper.SetInputData(line.GetOutput())
lineActor = vtk.vtkActor()
lineActor.SetMapper(lineMapper)
lineActor.GetProperty().SetColor(1, 0, 0)
lineActor.GetProperty().SetLineWidth(10)

render = vtk.vtkRenderer()
render.SetLayer(0)
topRender = vtk.vtkRenderer()
topRender.SetLayer(1)
render.AddActor(volume)
topRender.AddActor(lineActor)
renWin = vtk.vtkRenderWindow()
renWin.SetNumberOfLayers(2)
renWin.AddRenderer(render)
renWin.AddRenderer(topRender)
iren = vtk.vtkRenderWindowInteractor()
iren.SetRenderWindow(renWin)
iren.SetInteractorStyle(vtk.vtkInteractorStyleTrackballCamera())
iren.Initialize()
# have both renderers use same camera
render.SetActiveCamera(topRender.GetActiveCamera())
topRender.ResetCamera()
iren.Start()

```

 ![image](https://discourse.vtk.org/uploads/default/original/2X/1/14e79742a02eafe78841ac7f0d07e298d41187cb.png)

---

<div class="post-metadata">

### Author: ![zhang-qiang-github](https://discourse.vtk.org/user_avatar/discourse.vtk.org/zhang-qiang-github/32/2519_2.png) [@zhang-qiang-github](https://discourse.vtk.org/u/zhang-qiang-github)
#### Post date: [May 20, 2022, 11:50am UTC](https://discourse.vtk.org/t/mip-rendering-make-line-black/8466/4 "2022-05-20T11:50:09Z")

</div>

Actually, I find the ‘black’ line can turn to ‘red’ by setting the opacity of MIP.

The modified code is:

```auto
import vtkmodules.all as vtk

img = vtk.vtkImageData()
img.SetDimensions(256, 256, 256)
img.AllocateScalars(vtk.VTK_DOUBLE, 1)
for i in range(256):
    for j in range(256):
        for k in range(256):
            img.SetScalarComponentFromDouble(i, j, k, 0, i+j+k)

mapper = vtk.vtkSmartVolumeMapper()
mapper.SetInputData(img)
mapper.SetBlendModeToMaximumIntensity()

volume = vtk.vtkVolume()
volume.SetMapper(mapper)
p = volume.GetProperty().GetScalarOpacity()
p.RemoveAllPoints()
p.AddPoint(0, 0.3)
p.AddPoint(256*3, 0.9)
line = vtk.vtkLineSource()
line.SetPoint1(0, 0, 0)
line.SetPoint2(300, 300, 300)
line.Update()
lineMapper = vtk.vtkPolyDataMapper()
lineMapper.SetInputData(line.GetOutput())
lineActor = vtk.vtkActor()
lineActor.SetMapper(lineMapper)
lineActor.GetProperty().SetColor(1, 0, 0)
lineActor.GetProperty().SetLineWidth(10)

render = vtk.vtkRenderer()
render.AddActor(volume)
render.AddActor(lineActor)
renWin = vtk.vtkRenderWindow()
renWin.AddRenderer(render)
iren = vtk.vtkRenderWindowInteractor()
iren.SetRenderWindow(renWin)
iren.SetInteractorStyle(vtk.vtkInteractorStyleTrackballCamera())
iren.Initialize()
iren.Start()

```

And the result is:

 ![image](https://discourse.vtk.org/uploads/default/original/2X/e/ec87cbb148679937ee6cc80cca5d2ac351c5b5d7.png)
