के साथ एकाधिक 3 डी टेक्स्ट ऑब्जेक्ट्स को प्रस्तुत करने के लिए मैं vtk ऑब्जेक्ट vtkVectorText का उपयोग करके पाठ प्रस्तुत करने का प्रयास कर रहा हूं। यह एक 3 डी स्थान के लिए ठीक काम करता है। मुझे 3 डी (vtkPoint) बिंदुओं के ऊपर 3 डी टेक्स्ट रखने की आवश्यकता है। मैंने vtkTextActor3d के साथ ऐसा करने की कोशिश की लेकिन प्रत्येक टेक्स्ट ऑब्जेक्ट को एक अलग अभिनेता की आवश्यकता होती है और मैं 10k कलाकारों के साथ समाप्त हुआ, जो दृश्य को घुमाने के लिए उदाहरण के लिए प्रयास करते समय बहुत खराब और लगी हुई है।वीटीके - एकल अभिनेता
मैं भी एक vtkVectorText सारिणी निर्मित appendFilter की वस्तु से असंरचित ग्रिड और फिर आदेश मेरा वांछित बिंदु स्थानों के साथ असंरचित ग्रिड रेंडर करने के लिए में polydata करने के लिए इसे परिवर्तित करने के लिए कुछ appendFilter लागू करने की कोशिश। यह कुछ भी नहीं दिखाता है क्योंकि मैं यह नहीं समझ सकता कि ऐसा करने का सबसे अच्छा तरीका क्या है।
क्या कोई इस से मेरी सहायता कर सकता है?
यहाँ अंतिम भाग से मेरे कोड है:
vtkSmartPointer<vtkPolyData> pointsHolder = vtkSmartPointer<vtkPolyData>::New();
pointsHolder->SetPoints(points); // I assume that these are the points where you want the object to be rendered
vtkSmartPointer<vtkGlyph3DMapper> glyphMapper = vtkSmartPointer<vtkGlyph3DMapper>::New();
glyphMapper->SetSourceConnection(vecText->GetOutputPort()); // this says WHAT should be rendered
glyphMapper->SetInputData(pointsHolder); // this says WHERE
textActor->SetMapper(glyphMapper);
इस प्रस्तुत करना होगा: पाठ प्रत्येक बिंदु के लिए एक ही है
vtkSmartPointer<vtkAppendFilter> appendFilter = vtkSmartPointer<vtkAppendFilter>::New();
//for each point
for (int i = 0; i < N;i++) {
vtkSmartPointer<vtkVectorText> vecText = vtkSmartPointer<vtkVectorText>::New();
vecText->SetText("My text, needs to appear multiple times");
vecText->Update();
appendFilter->AddInputData(vecText->GetOutput());
appendFilter->Update();
}
vtkSmartPointer<vtkUnstructuredGrid> unstructuredGrid = appendFilter->GetOutput();
unstructuredGrid->Allocate(N);
unstructuredGrid->SetPoints(points);
vtkSmartPointer<vtkGeometryFilter> geometryFilter = vtkSmartPointer<vtkGeometryFilter>::New();
geometryFilter->SetInputData(unstructuredGrid);
geometryFilter->Update();
vtkSmartPointer<vtkPolyDataMapper> textMapper = vtkSmartPointer<vtkPolyDataMapper>::New();
textMapper->SetInputConnection(geometryFilter->GetOutputPort());
vtkSmartPointer<vtkActor> textActor = vtkSmartPointer<vtkActor>::New();
textActor->SetMapper(textMapper);
textActor->GetProperty()->SetColor(0, 1, 0);
renderer->AddActor(textActor);